You should be more selective in the things you change.
Code:
OPTION_REG = %01000000 'when RB.0 goes high the interrupt should work
Apparently, the idea in that statement was to set INTEDG so that the interrupt would trigger on the Rising edge.

Rising edge is the default, so it didn't need to be changed. But in the process, you've changed everything else in the OPTION register.

The WDT prescaler is assigned to TMR0, and the WDT will now timeout in only 18 ms.
Settings for TMR0 are changed too.
PORTB Pull-ups are enabled, which is probably your main problem.

When you want to change INTEDG, just change it

OPTION_REG.6 = 1

But then, like I said, it's already the default.<hr>
Same thing applies to your use of INTCON.

When using ON INTERRUPT, PBP controls the GIE bit (INTCON.7).
Changing it yourself can cause problems.

And change each bit individually, so that it doesn't interfere with other things.

INTCON.1 = 0 ; Clear External Interrupt Flag
INTCON.4 = 1 ; Enable External Interrupt

-- or --

INTF VAR INTCON.1
INTE VAR INTCON.4

INTF = 0 ; Clear External Interrupt Flag
INTE = 1 ; Enable External Interrupt

hth,