Hola. Antes que nada, recomiendo que actives las weak pull ups del puerto b.
La logica es esta:
Poner fila 1 en bajo(RB3) y las otras 3(RB0,RB1 y RB2) en alto y revisas las columnas <RB4:RB7>
Si el valor de <RB4:RB7> es distinto a 1111, significa que hay algo presionado. Sabiendo la fila actual y buscando el 0 presente, obtienes la tecla pulsada. Si <RB4:RB7> es 1111, pones en bajo la fila 2(RB2) y el resto(RB0,RB1 y RB3) en alto...y asi haces con las 4 filas. Una por una.
Saludos.