Pone la tabla cerca del comienzo y no vas a tener mas problemas.
Tu problema es que la tabla ahora recae sobre la direccion de PC 0x117, cuando vos realizas una instruccion sobre el PCL, la parte "alta" la toma de PCLATH
Entonces al momento de ejecutar el ADDWF el calculo te tira PCLATH:(0x17+W) como PCLATH es 0, se produce un "salto" a la direccion de PC 0x018
Esto ocurre con instrucciones que afectan al PC directamente a sus registros, los CALL y RETURN guardan y usan todo el PC, por eso no hubo problemas de ejecutar el CALL desde el comienzo
Soluciones hay 2. O tenes en cuenta el PCLATH, en este caso si es el unico lugar donde tenes tablas y actuas sobre el PC, pone el PCLATH a 1.
O mover la tabla al comienzo, asi el PCLATH se mantiene en 0 y no te preocupas por el mismo.
EDIT: Ahh y una cosa mas...
test_dece
movlw .9
subwf dece,w
btfss STATUS,C
goto test_cent ; dece es menor que 9
btfss STATUS,Z
goto clr_dece ; dece es mayor que 9
goto test_cent ; dece es igual a 9
clr_dece
clrf dece
test_cent
Es mas simple, jugando con la logica:
test_dece
movlw .10
subwf dece,w
btfsc STATUS,C
clrf dece
test_cent