Думаю, так происходит от того, что NAT работает со старой, уже сформированной NAT-таблицей. После перезагрузки роутера таблица обнуляется, формируется заново — и всё отлично начинает работать.
Выход — после переключения на резерв сбросить NAT-таблицу.
Не знаю, как это сделать в linux, но думаю решаемо перезапуском демона iptables.
Ответ не претендует на истинность, но всё таки проверьте. Например посмотрите таблицу NAT до падения линка, после падения и после перезагрузки.
Удачи! Если найдёте решение — отпишитесь где-ниюбудь ;)