ICD are sometime useful... sometime a pain to deal with... most of the time, too slow to be efficient anyways.... one of the reason why i don't use them.

BTW,
Code:
Loop:

if portB.5 = 1 then
goto Sub_MicroControllerBatteryCheck
else
goto print
endif

print:
Even if you don't push on the button, you'll jump to Print right?

Assuming you have place a Pull-down resistor, LVP is set to off, MCLR is set to VDD and there's no multiplexed analog stuff on PORTB, it have to work.

P.S.: As we can't always remind which PIC you're using, you should say us and post your whole code + Crystal speed + Config Fuses setting.