Laut deinen Schaltplänen ist dein Hauptprogramm in zwei Zeilen realisierbar, da das Ausgangssignal am Pin von PORTB immer einem Eingangssignal am entsprechendem Pin von PORTA gleich seien sollte.
Dafür braucht man immer nur endlos eigelesener Wert vom PORTA ins PORTB schreiben (kopieren), ohne irgendwas prüfen zu müssen:

movfw PORTA (bzw. movf PORTA,0 oder movf PORTA,W)
movwf PORTB

Sonst sollte noch, wie der Benedikt.Seidl schon geschrieben hat, die Konfiguration des PICs mit __config Direktive festgelegt werden.

MfG