Como apontado nos comentários, a maneira de fazer isso é criar duas regras de NAT para ambos os serviços internos, como este:
iptables -t nat -A PREROUTING -d public.ip -p tcp --dport 4444 -j DNAT --to inthost1:12345
iptables -t nat -A PREROUTING -d public.ip -p tcp --dport 5555 -j DNAT --to inthost2:12345
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d inthost1 -p tcp --dport 12345 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d inthost2 -p tcp --dport 12345 -j MASQUERADE
Desta forma, se um host interno envia um pacote para o outro, ele parecerá vir do "gateway" (a caixa NAT), para que a caixa NAT receba a resposta e possa encaminhá-lo para a outra caixa interna.