Hola!
No importa en que parte del programa se esté, al darse una interrupción ésta se atiende (siempre que esté habilitada).
Tu problema puede ser el siguiente: al atender la interrupción seguramente estás usando el registro W, y también se modifica el registro STATUS. Al retornar de la interrupción estos registros ya no tienen los valores que tenían antes, con lo que el programa no responde correctamente. No suele ser tan común, pero a veces hay que cuidar tambien por el registro PCLATH; todo depende de nuestro programa...
En cualquier hoja de datos de estos micros encontrarás la solución (la mejor!) a este problema, en el capitulo de interrupciones. Puedes descargar la hoja de datos de la página de Microchip.
Saludos!