Is the bootloader written in ASM?

The only reason to save the state of PBP's system variables is if the interrupt handler will be using any of the same RAM locations.
If the bootloader is all ASM, then any variables it needs can be placed at the "End" of RAM so they don't interfere with PBP. Then you can very easily just return (retfie) to the PBP program. (after restoring "context"). As long as none of the system vars were changed, PBP will continue from where it left off.

Your approach makes it so that the PBP program itself will not be able to use interrupts, including ON INTERRUPT. It would be possible to have the bootloader pass the interrupt to the PBP program, but it won't be too easy. Hopefully, you won't need interrupts in the PBP program.
<br>