Hola, ya lo probé y encontré el problema pero no la solución.
Corriéndolo paso a paso el programa hace todo bien hasta aquí:
movf ADRES,0
movwf ADATO
movwf PORTB
Cuando ADRES debe pasar a W el valor de W se pone a 0x00... no entiendo el porqué.
Debe ser un bug de proteus. Prueba con un protoboard y un juego de leds.