It does not matter what that script says at this point.
OTA interface contains calls to two functions located in the bootloader - IAP_WRITE_PAGE_HANDLER and IAP_SWITCH_HANDLER. appGetIapHandler() is used to retrieve actual pointers. The problem is that it only reads words, which is enough on 128K devices, and not enough on 256K devices.
You need to figure out if standard C pointer is 2 or 4 bytes on that platform.
Basically forget about full OTA stuff for now. Just call appSwitch() anywhere from the application, and make things work so that iap_switch_handler() is called in the bootloader. Just called, it does not have to actually do anything, just blink an LED or something.
Once that works, the rest will work automatically.
It is a pretty short path in assembly, you should be able to easily trace it. If you can't, you should consider hiring someone to do this.