Hi Malcolm. One suggestion is to make all unused ports as outputs. This helps in noisy environments as electric motors drive PIC's crazy even with a separate supply. Make sure portb.0 is held high with a resistor not too high in value. I once had a small hobby motor drive my PIC crazy until I went down to a 1K resistor as a pullup.

CMCON = 7
TRISA = 0
TRISB = 0 'MAKE ALL OUTPUTS
PORTA = 0
PORTB = 0 'ALL OUTPUTS LOW
INPUT PORTB.0 'RB0 SWITCH INPUT

MAIN:
NAP 0 'REDUCE CURRENT DRAIN ON BATTERY
IF PORTB.0 = 0 THEN CHANGELED 'IF REED SWITCH CLOSED CHANGE LED STATE
GOTO MAIN

CHANGELED:
TOGGLE PORTB.4 'CHANGE LED STATE

WAITFORRELEASE:
PAUSE 1000 'WAIT A SECOND
IF PORTB.0 = 0 THEN WAITFORRELEASE 'WAIT HERE FOR REED TO OPEN
GOTO MAIN