I assume that the FreePBX system is in the cloud or at a location different from the failing clients, and on a static public IP address. If not, please explain.
That OPTIONS request doesn’t tell us anything – if the new registration isn’t working (for any reason), Asterisk will continue to send OPTIONS to the old address, until the old registration expires.
Confirm that when things are working normally (no outage), the phone is sending REGISTER requests with a short expiry, e.g. every 120 seconds.
Then, when you fail over, does the Asterisk SIP debug log show REGISTER requests coming in from the new address? If so, what response, if any, is given?
If Asterisk doesn’t see the new REGISTERs, can you see them with tcpdump? If so, the FreePBX firewall is blocking them – confirm that both addresses are properly whitelisted.
If they don’t show in tcpdump, try capturing traffic on the Mikrotik’s secondary WAN interface to confirm that they are being properly set out.