Musíš zkombinovat connection marking s routingem.
Uděláš si 4 routovací tabulky, jednu základní, která ti bude fungovat jak dosud, dále další tři doplňkové (třeba isp1, isp2 a isp3), těch tabulkách bude natvrdo default routa vždy daným wan portem.
Dále novému příchozí spojení z jednotlivých wan linek přidáš connectin mark dle daného ISP. A na odchozím provozu budeš testovat, zda spojení nemá nastavneu connection mark, pokud ne, tak ti padne do defualt routování tabulky a odejde tvým aktuálním defualtem (takže jde o spojení, které vzniklo u tebe), pokud connection mark má, tak mu dle toho nastavíš routing mark a pošlelš to tím do příslušné routovací tabulky a linkou ven tou, kterou ti to přišlo.
Násilnil bych to v mangle tabulce, něco jako (psáno zpaměti):
chain=prerouting action=accept connection-state=new in-interface=wan1 connection-mark=101
chain=prerouting action=accept connection-state=new in-interface=wan2 connection-mark=102
chain=prerouting action=accept connection-state=new in-interface=wan3 connection-mark=103
chain=output action=mark-routing new-routing-mark=isp1 passthrough=yes connection-mark=101
chain=output action=mark-routing new-routing-mark=isp2 passthrough=yes connection-mark=102
chain=output action=mark-routing new-routing-mark=isp3 passthrough=yes connection-mark=103
chain=forward action=mark-routing new-routing-mark=isp1 passthrough=yes connection-mark=101
chain=forward action=mark-routing new-routing-mark=isp2 passthrough=yes connection-mark=102
chain=forward action=mark-routing new-routing-mark=isp3 passthrough=yes connection-mark=103