Right you are. 32 bytes.
Sorry, I was looking at the erase size.

I don't see why it shouldn't work with the interrupts. It's just like jumping to any other part of the program.

How do you get the code that is being loaded from EEPROM?
Is it compiled separately?
Was it compiled at the correct address?