Hola. Revisando el programa en forma manual (o sea sin el mplab) no eh notado ningún error, lo que si, se pueden omitir varias lineas que están demás.
1º
a btfss 0X05,2 ;Chequea el estado de RA1.Si bit 2 del registro PORTA es 0 se
;ejecuta siguiente instruccion.Si bit 2 del registro PORTA es 1
;la instruccion que sigue a esta se ignora y se salta
b goto Estan_a_000 ;Salta a la etiqueta "ESTAN_A_000"
c goto Estan_a_100
d Estan_a_000 movlw b'00000001' ;El registro W se carga con valor b`00000001´
e movwf 0X06 ;Carga el valor W en PORTB
f movlw b'00000001' ;El registro W se carga con valor b`00000001´
g movwf 0X07 ;Carga el valor W en PORTC
h goto Loop ;Salta a la etiqueta Loop
Nota: enumeré las lineas con letras para una mejor comprención
deverias corregir la linea "a" por la siguiente instruccion btfsc 0X05,2
y cambiar la linea "c" al lugar del "b" y en el "c" va desde movlw b'00000001'
de esta forma ahorro un ciclo de instrucción (es verdad que en este programa carece de importacia, pero es bueno que te acostumbres a tomar todos los detalles para que el día que hagas un programa muy complejo ahorres tiempo y memoria) Cuando hablo de tiempo es el tuyo y el del PIC.
2º
a Estan_a_001 movlw b'00000010' ;El registro W se carga con valor b`00000010´
b movwf 0X06 ;Carga el valor W en PORTB
c movlw b'00000010' ;El registro W se carga con valor b`00000010´
d movwf 0X07 ;Carga el valor W en PORTC
e goto Loop ;Salta a la etiqueta Loop
Deberías omitir la linea "c" ya que nunca se ve afectado el registro W.
La razón por lo que no revisé el programa con el mplab es que recien vengo de trabajar y estoy muy cansado. Con tiempo lo reviso. Si lo revisas, comenta los resultados.
Suerte y saludos