Fun dev story: The Mode 7 script I use doesn't Mode-7-ify events. They just move about normally on the map which looks kinda bad! Time and again I stared at the script to find a way to fix it but it's just completely over my head. I was thinking I'd just hide the vehicles as an awful fix but I had a revelation: Instead of trying to fix the script, I could just rewrite the map data itself via a script!
So now when the player boards the airship, the boat and ship vehicles are made invisible and the script will edit the upper layer of the map data to set them to the tile graphic for the boat and ship. And when you land it'll revert the map data and make the vehicles appear normally again.
It took some finagling to get it to work right but eventually it did and the boat and ship can now appear on the map while flying with minimal issues. Yay!