Schematic is not really readable, but looks ok to me.

I'd like to know if you can get proper sleep when you put the INTCON=% instruction just before the @sleep instruction : it clears the flags and sets up for the next interrupt.

Another item which causes me a little worry is the RESUME main. Why shouldn't it resume where it interrupted??