When the flash is protected the vectors (except reset) actually move to the highest addresses in the unprotected flash. Since the processor cannot change the protected region on the fly. this does indeed make it difficult to use interrupts while in boot programming mode. I wrote non-interrupt code that ran the SCI enough for boot programming to work.
I guess it would be possible to temporarily modify the vectors at the top of the unprotected section to point to routines in the protected section (boot code) and use those interrupts. You would then have to, as the last thing you do, program the top of the unprotected section with the new vectors. Although
this is possible, I believe you increase your odds at "paperweighting" your product if something goes wrong.