Just a thought...
Move some of the routines over to another PIC, Maybe something that has some heavy calculations. PIC#1 sends data to PIC#2 for calcs, when finished PIC#2 sends data back to PIC#1. Sort of like an interrupt.