You have enabled Interrupt On Change (INTCON.3), External interrupt (INTCON.4) and Timer1 Ints (PIE1.0).
But the ISR only clears the flag for Timer1. So it will be continuously interrupting when the other interrupts get triggered.

It needs to differentiate between the different interrupts, run separate code depending on which one fired, and clear the appropriate flags before resuming.

Remember that with Int On Change you have to read the port to clear the mismatch condition before you can clear the flag.