So I stripped my code back to just a blinking LED, which worked consistantly. That got me thinking...

Previously my indication that the device was functioning was based on a serial data status LED. I would consider the chip "booted" after serial data was recieved by the pic and the LED went on. On the 16F876A Rx for the UART is on PortB, on the 16F877A its on PortC. After looking at TRISC I noticed that TRISC.7 in my code was not set. I set it and things seems to be "working" now.

Long story short, check your TRIS settings. I must have check that a dozen times in the last 2 days. I guess I've been staring at this code too long Thanks for the help!