At the coding level, your ISR for the external interrupt does nothing other than clear the IF bit.
As a matter of coding style, I must admit that I find the use of setting and clearing bits using '&=' and '!=' with bit shifts on the right-hand side to be very hard to read. For example 'LATC ^= (1<<7);' is not that 'intuitive' (at least to me) as opposed to 'LATCbits.LATC7 ^= 1;' and a lot less error prone.
In my experience I have only ever once needed to alter the default interrupt priority levels (and that was for a very complex multi-tasking system that also used freeRTOS). I know the capability is there but, especially in your situation where the ISRs are short, there is no advantage in having one ISR being able to interrupt another.
I'm not sure how you are using the ISR to debounce the button. I see that you start Timer 2 in the 'SetButtonInterrupt' function and set it running continuously but you do reference it else where and there is no ISR associated with it.
Further, an external interrupt is a very poor way to debounce a button.
A far better way to debounce a button (in fact any number of external buttons/switches) is to set up a (say) 1mSec timer and in the ISR test the state of the port(s). If it is NOT the same as the last time you sampled it, then set a register to (say) 10; if it IS the same then decrement the register if it is greater than 0 and if it turns 0 then set an internal flag that you can test elsewhere.
In your main loop, you test for RC9 being 0 and, if it is, then you increment the Timer 1 PR register. However that main loop is very small and will execute many, MANY times each microsecond (depending on your oscillator setup which you have not shown). You really need to use one of the more standard approaches to detecting external button presses that you can find on the Internet and in these forums.
If you are just starting out then I suggest you go back a step and get a LED to flash at the required speed. This way you will make sure that you have set up everything else you need to (oscillators, analog pins, timers etc.). Then do something as simple as connecting a button and a LED so that each push of the button toggles the LED - this will show you how to debounce a button as well as introduce you to the proper uses of interrupts.
My general advice is to keep away from interrupts unless you need to use them - at least while you are learning to use these devices.
Edit: Correct LATC bit reference
post edited by Aussie Susan - 2021/01/17 18:43:15