Normally in the interrupt routine this is needed.
INTCON.1 = 0
But the data sheet for this chip reads like this is needed.
INTCON.0 = 0

Then at the beginning of your code below
INTCON = %10001000
add
IOC.3=1

I think...