A good rule with interrupts is to get in and out as fast as possible.
Try not doing all of the processing inside the interrupt routine and see if that helps.