Exactamente, el pull up es el problema, yo te aconsejaría en principio que lo deshabilites y que lo implementes por resitencias donde sea necesario. ya que las R no serían muchas ni ocupan tanto lugar y aprovechás el 14555 que tenés. El pull-up (tanto por resistencias como el interno) sólo es necesario cuando en algún momento las entradas puedan quedar al aire y entonces el pull-up les da una referencia.
Usando lógica positiva necesitás una referencia a masa, sería algo como "pull-down"
Reseña:
Pull-up interno del puerto b: Cuando es habilitado, es "como sí" pusieses resistencias entre cada pin del puerto que actua como entrada (nunca las salidas) y la referencia positiva Vdd.
No se trata de un divisor resistivo, ya que no debés poner ninguna otra resitencia en el pin con pull-up habilitado.
Cuando el pin recibe un cero lógico circula corriente por la seudo-resistencia interna y en ella caen los Vdd=5 voltios y en el pin tenemos el cero.... en cuanquier otro caso, ya sea un uno lógico o el pin al aire, no habrá circulación de corriente por la seudoresistencia, por lo cual en el pin tendremos el mismo potencial Vdd= 5 voltios, tenemos un uno.
Por eso el pull-up se usa para lógica negativa
Para el caso de lógica positiva las resistencias de pull-down deben ser implementadas con resistores, debido a que el pic no contempla está situación internamente. Aquí, la llegada de un uno genera corriente por R y un uno lógico, en cualquier otro caso (incluyendo pin al aire, y ahí su ventaja) R está forzando un cero lógico.
Con estos métodos, nunca tenemos indeterminadas nuestras entradas, que de otro modo estarían flotando y propensas a los ruidos.
Luego de la reseña me parece que debo aclarar que tenés que ponerle pull-down (resistencias a masa) en los pines RB5 y RB6, ya que estós están al aire cuando ninguna tecla se encuantra pulsada.
RB7 parece una salida de chip select por lo que no lleva resitor por ser salida.
No sé bien el funcionamiento de RB0, RB1, RB2 y RB3 si en algún momento son entradas y si esas estradas no vienen de otros chips, entonces se supone que podrían estar al aire alguna vez, le ponés resistencia, si no, no.
No sé el tema del mando a distancia, como es el dato que te envía si es un uno o un cero....