Me respondo yo solo, y por si a alguien mas le sirve
Pues resulta que yo intentaba despertar al PIC usando la interrupción por cambio de estado en el puerto B, sin embargo, la instrucción enable_interrupts(int_rb), estaba configurando mal los registros para este pic, ya que al presionar una tecla, el pic se despertaba, pero al pasar nuevamente por la función de sleep, el micro despertaba inmediatamente sin que se hubiera presionado una tecla.
Por lo que leí en el datasheet para el modelo que uso, la interrupción se puede configurar para todo el puerto B y en cada pin se debe de especificar si la interrupción ocurrirá en flanco de subida o de bajada, por lo que cada pin tiene su prpia bandera de interrupción, finalmente solucioné el problema configurando los registros manualmente.
Espero le sirva a alguien para futuras referencias, y si necesitan una explicación mas detallada pregunten y con gusto explico mas a detalle
Saludos