que tal asd12 cheque tu programa y quizas el por que no funciona correctamente puede ser debido a que toda la rutina de la inter. del tmr1 esta en la pagina 1 de la memoria de programa ahi algo importante acerca de las interrupciones cuando ejecutas varias interrupciones debes cuidar la pagina que respaldas ó dejas al entrar a la interrupcion y la pagina en la que tu rutina de interrupcion se encuentra tu rutina se encuentra hasta lo ultimo yo lo compile en mplab y pude ver que esta rutina esta en la pagina 1 si tu no cambias de pagina primero entonces respaldaste la pagina anterior que es la 0 pero la pagina actual en tu programa sigue siendo la 0 durante la interrupcion y tu rutina inter esta en la pagina 1 asi que prueba de esta forma
inter
movlw 0x01
movwf PCLATH
bla,bla,bla
y eso es todo si funciona que eso espero ya que es un punto importante yo modifique tu programa para que esta rutina quede asi como uso mplab tuve que poner la palabra de conf. etc. etc. pero corrijelo a como estaba y pruebalo saludos