Ok, get this! I just tried using a 16F84A instead of the 16F628A using nearly the exact same code and it works! I just removed the CMCON = 7 and DEFINE OSC 20 and stuck a 4MHz resonator on the board. With the 84A the LCD reads out the proper values one after the other, 10,2A,54,FF,7C. So now it looks like there is either something weird happening when I compile or the 628A does not like this code. Any ideas? I'd rather not have to step down my chip for this and have to order more old 16F84A's.

Code:
'CMCON = 7
'DEFINE OSC 20

char            VAR     Byte                    ' character from table
loop var byte

i con 254
clrlcd con 1
cgram con 64
ddram con 128
n96n con $4054
pause 1000
serout2 portb.7,n96n,[i,clrlcd]
pause 1

DATA @$00,$10,$2A,$54,$FF,$7C

Main:
for loop = 0 to 4
READ loop, char        ' get tag data from table

'Debug to LCD
serout2 portb.7,n96n,[i,clrlcd]
pause 500
serout2 portb.7,n96n,[i,ddram+0]
serout2 portb.7,n96n,[HEX char]
pause 1000

next
end