Que tal KILLER? Paso a contar sobre el detalle.
Después de tantos intentos, el problema viene por la forma en que el compilador asigna el espacio de RAM a los arrays del programa.
Ayer comencé a desactivar uno a uno, hasta que de repente, el programa lee los dos puertos que tiene asignado a un botón cada uno.
Leyendo un poco encontré info. cómo manipular la RAM.
Y encuentro la directiva #reserve, pero sólo sirve para asignar locaciones para uso exclusivo del compilador, listo eso terminó ahí.
Continué buscando el problema y veo que según el tamaño que asigne a los arrays el problema se daba o no.
Entonces empecé a dimensionar los arrays con valores múltiplos de 2, más específicamente de 256 en 256, de esa manera no hubo problemas, por ejem. 1023, 1535 o 1791.
Luego he intentado provocar la falla, y no lo he conseguido, probé con los valores cercanos a los que usé, y no hubo forma, desconcertándome aún más

En conclusión, al asignar un array tipo short var[1500] o similar, me apareció el problema. Estimo que el array estaba pisando algún valor de algún registro de uso interno cómo lo mencioné antes.
Además añadiendo la línea
#DEVICE HIGH_INTS=TRUE ,( muy bien sugerida por Eduardo2), el programa trabaja estable.
Espero le sirva a alguien más, aunque NO encontré el problema en si, pero funciona cómo debe. Veo que muchos han tenido problemas similares al mío, al trabajar con arrays de gran tamaño en los pic 18F.
Gracias por la colaboración!!!👏👏👏