PIC16F684 Timer 2 interrupts occurring much more quickly than expected
You have a bug in the ISR. Where you think the interrupt flag is cleared it is actually compared to zero. Consequently, the ISR gets called again immediately after completion. Change the line to

PIR1bits.TMR2IF=0;     //clear interrupt flag


All should be well after that.