Hola de nuevo RALF, ya realicé una prueba con tu código y comparé el tuyo y el mio y aca mi conclusiones:
-Ambos programas funcionan.
-En mi código, yo configuré la interrupción por cambio de estado, pero no activé el bit de interrupciones globales; enable_interrupt(int_global); o activar el bit 7 del registro INTCON, debido a esto el micro despierta y brinca a la siguiente instrucción después del sleep
-En el caso del código de RALF, al activar el bit de interrupciones globales, el micro despierta y atiende a la interrupción.
Estas son las 2 opciones para despertar el pic, dependiendo de las necesidades de cada quien, espero les sirva
Saludos