And some more information from HDHomeRun team:
The random port is set on the application side, not the HDHomeRun side. Basically, Plex starts listening on a port, and then tells the HDHomeRun to stream to that port. Anything to specify a particular port/range would have to be within Plex, not on the HDHomeRun. This only applies to legacy HDHomeRun devices as well. Newer devices stream using HTTP, so the client (Plex) connects to the HDHomeRun and pulls from it, rather than the HDHomeRun pushing data to the client. That should not require any special port configuration since the connection comes from the client. Legacy devices just don’t have the hardware capabilities to do that.