I also don't see you setting the pins used to outputs but Darrels original code doesn't do it either so it's probably handles by the LCDOUT statement as normal ir the hijack routine. But again, might be worth a try configuring TRISIO properly.