As conexões TCP podem ser identificadas exclusivamente pela combinação de IP de origem, porta de origem, IP de destino e porta de destino. Um bom exemplo é um servidor web - todos estão se conectando a ele na porta 80, mas é capaz de manter todas essas conexões para a mesma porta simultaneamente porque o IP e a porta de origem são diferentes para cada um.
O que eu estou chegando aqui é que você está reinventando a roda abrindo uma porta de escuta distinta para cada cliente de conexão. O melhor exemplo de um protocolo que se comporta da mesma maneira é o FTP de modo passivo. Alguns firewalls funcionam bem com ele apenas por causa da profunda inspeção de pacotes - há código em vigor na inspeção de protocolo devido à necessidade de abrir a porta alta, mas é uma solução alternativa específica para algo que é considerado uma maneira "legada" de fazer coisas.Eu recomendaria o uso de uma única porta para todo o tráfego de entrada do cliente, que é uma forma muito mais amigável de firewall de permitir conexões de cliente - tanto do seu lado quanto do cliente, onde as políticas de firewall podem ter alto destino portas bloqueadas. Se isso não é uma preocupação e você especificar um intervalo de portas e apenas deixar todos eles através do firewall, apenas certifique-se de que nada mais está escutando neles.