Just some minor modifications to your code

Code:
  
myvar var byte 'var output from keypress
Array var Byte [3] 'array variable to hold 3 keypresses
A0 var byte 'counter/index
B0 var Byte 'sum of digits
KeyPress Var Byte 'holds each keypress as it happens
           Pause 2000       ' Wait for LCD to startup

  
   A0=0   'index = 0

Ini:

lcdout $fe,1
lcdout "enter number"
B0 = 0                             ' start with 0 in the sum of digits
@ READKEYPAD _myvar  'read keypress variable and place in myvar
  b0 = b0*10+_myvar     ' add in the new number


  LOOKUP myvar,[0,"123A456B789C*0#D"],myvar 'use lookup table to diplay proper keypress
  keypress = myvar 'pass the variable to solve strange character problem
 ' will contain the ascii character of the key pressed
  
  lcdout keypress
  pause 1000
  lcdout $fe,1  
'If keypress = "a" or "b" or "c" or "d" then goto numbers
if keypress = "*" then goto retry
If KeyPress = "#" then    'check input keypress for a # value
'if B0 > 255 then goto overflow 'test for overflow B0>255
HSEROUT ["here is the total ",dec B0,$0d,$0a]  'send result to pc com port 
 
A0=0
 
ENDIF

If A0>2 then retry 'Ini

Array[A0]=KeyPress -48
A0=A0+1

goto ini

numbers: 'tell person to enter only numbers
lcdout "numbers only"
pause 1000
A0=0
myvar=0
goto ini

retry: 'is the * key is pressed then prompt for a retry and clear A0 and myvar
lcdout "retry"
pause 1000
lcdout $fe,1
A0=0
myvar=0
goto ini

overflow: 'tell person to enter 0 to 255 only
lcdout $fe,1
lcdout "0 to 255 ONLY!"
pause 1000
A0=0
myvar=0

goto ini