Thank you for the update. I was just trying to reproduce you problem...
Yeah, on Linux MPICH_PORT_RANGE IS supported. And it should be sopprted on Windows as well, but there is some either error or missunderstanding inside of the library and application doesn't work.
Pay attention, that there are socket connection for mpd (smpd) daemons and for internal net module (tcp communication between mpd and application) . They use different environment variables: MPD_PORT_RANGE and MPICH_PORT_RANGE.
On Windows: could you please try to add '-genv I_MPI_PLATFORM 0' and check your test case with barrier. If it doesn't work add also '-genv I_MPI_DEBUG 500' and check one more time. I'm not sure that tcp connection will use ports from the range but at least it doesn't hang in my experiments.
Does it work with I_MPI_PLATFORM but without I_MPI_DEBUG?
As I wrote before there are 2 different programs: smpd and mpiexec. You need to set both SMPD_PORT_RANGE (and restart smpd service) and MPICH_PORT_RANGE. But I'm not sure that MPICH_PORT_RANGE works properly - you can check ports by tcpview.
Windows firewall is constantly a headache. We recommend to turn it off. From my point of view firewall should be set and configured on a dedicated computer for external connections. And internal network should be behind the firewall without restrictions.
BTW: by default smpd listen to port 8678. This number can be changed by '-port' option.