Из любопытства воспроизвел Вашу конфигурацию на временно свободном маршрутизаторе. Почему-то заработало сразу. Что я сделал неправильно?

Main routing table (автоматически созданные маршруты опускаю):
8 Route IPv4 wan1 all-nets wan1_gw 1 Yes
9 Route IPv4 wan2 all-nets wan2_gw 2 Yes
10 Route IPv4 core wan1_ips 0 No
11 Route IPv4 core wan2_ips 0 No
Default gateway на всех интерфейсах -- None!
Все дополнительные внешние адреса опубликованы через arp -- не привожу, это Вы делали.
IP Rules:
# Name Action Src If Src Net Dest If Dest Net Service
1 servers_to_WAN1_SAT SAT dmz servers wan1 all-nets all_services
2 servers_to_WAN1 Allow dmz servers wan1 all-nets all_services
3 servers_to_WAN2_SAT SAT dmz servers wan2 all-nets all_services
4 servers_to_WAN2 Allow dmz servers wan2 all-nets all_services
5 WAN1_to_servers_SAT SAT wan1 all-nets core wan1_ips rdp
6 WAN1_to_servers Allow wan1 all-nets core wan1_ips rdp
7 WAN2_to_servers_SAT SAT wan2 all-nets core wan2_ips rdp
8 WAN2_to_servers Allow wan2 all-nets core wan2_ips rdp
9 ICMP_NAT NAT any all-nets WANS all-nets all_icmp
10 ICMP Allow any all-nets any all-nets all_icmp
11 LAN_to_WAN NAT lan1 lan1net WANS all-nets all_services
Вкладка SAT правила #1 (показываю только активизированные элементы):
Translate the
(*) Source IP
to:
New IP Address: wan1_ip
Вкладка SAT правила #5 (показываю только активизированные элементы):
Translate the
(*) Destination IP
to:
New IP Address: server_base
Правила #3 и #7: все так же с заменой wan1 на wan2.
Предполагается, что как внешние, так и внутренние адреса идут подряд и описаны диапазонами wan1_ips, wan2_ips, servers, а server_base -- это адрес 1-го сервера. Для тестирования проброшен порт удаленного рабочего стола - rdp. Если адреса не подряд или пробрасывать нужно разные сервисы, то правил будет больше, но принципиальных проблем не вижу.
Для полного счастья нужно еще сделать policy routing для правильного возврата входящих. Также я поленился воспроизводить стандартные фичи вроде drop_smb_all и поддержки активного ftp - сами сделаете

.