Like Yong Li said, there's no restrictions calling banked functions from ISRs, provided you don't do in ISR anything smart like interrupt nesting or task switching (like in preemptive RTOS). In such smart cases you may need to save and restore PPAGE by hand. Failure to do so will most likely lead to runaway. "variable sometimes changes" could be caused by higher stack space requirement of banked application. Try increasing stack size.