Sei que o pôster original não precisa mais de uma solução, mas aqui está minha opinião sobre a melhor solução para esse problema. Eu também percebi que o cartaz preferiria usar o Ubuntu, mas configurar as regras de roteamento manualmente dessa forma não é ótimo para transferir a propriedade para outras pessoas ou mesmo para se referenciar anos depois.
Eu pessoalmente sugiro uma configuração mais robusta usando uma VM do PFSense para balancear as conexões. Eu provavelmente também sugeriria a realização de NAT na própria caixa do PFSense em vez de nos modems. Eu tenho algo semelhante a isso configurado em uma VM e funciona bem.
Para as conexões entre os modems e a VM do PFSense, eu uso um comutador vlan capaz de conectar 3 VLans separados à VM e dividi-los em 3 portas separadas no comutador. Isso, na verdade, fornece um cabo direto (virtual) de cada modem para a caixa pfsense e outro cabo para a lan. Você pode então configurar os modems para repasse, que varia de provedor para provedor.
É verdade que isso evita o problema em vez de abordá-lo diretamente, mas colocar o NAT nos próprios modems parece-me apenas pedir problemas. Além disso, o PFSense é especificamente projetado como uma solução de roteador pré-empacotada, portanto, ele suporta e continuará a ser testado com configurações como essa, garantindo melhor confiabilidade por meio de atualizações.