El problema es que en la parte donde defines los datos:
CBLOCK
R_ContA ; Contadores para los retardos.
R_ContB
R_ContC
ENDCno estás definiendo el lugar de memoria donde guardar esas variables, por lo tanto el ensamblador la coloca desde la dirección 0x00 en adelante, es decir 0x00,0x01 y 0x02, Justo en la dirección 0x02 se encuentra el contador de programa (PCL), y le estás cargando el valor 10 en decimal o sea 0A en hexa cuando entras al retardo de 1s. Por eso cuando debería seguir con el programa al cargar ese valor en R_ContC, salta a la dirección 0A que es justo la línea
bcf PORTB,1
fijate en el list:
0000 280E GOTO 0xe 10: goto Inicio
11: org 0x04
12: Tratamiento_Interrupción
0004 138B BCF 0xb, 0x7 13: bcf INTCON,GIE
0005 1C0B BTFSS 0xb, 0 14: btfss INTCON,RBIF ; Fue la interrupción de cambio??
0006 280B GOTO 0xb 15: goto Final ; no, interrupción en falso, regrsa.
0007 1486 BSF 0x6, 0x1 16: bsf PORTB,1
0008 2052 CALL 0x52 17: call Retardo_1s
0009 0000 NOP 18: nop
000A 1086 BCF 0x6, 0x1 19: bcf PORTB,1 ----->acá es donde salta
20: Final
000B 0806 MOVF 0x6, W 21: movf PORTB,0
000C 100B BCF 0xb, 0 22: bcf INTCON,RBIF ; Repara el fag de la interrupción.
000D 0009 RETFIE 23: retfie ; Retorno de la interrupción
24:
25:
26: Inicio
000E 1683 BSF 0x3, 0x5 27: bsf STATUS,RP0 ;
000F 1303 BCF 0x3, 0x6 28: bcf STATUS,RP1 ; Pasa al ban
Por lo tanto te recomiendo que le asignes alguna dirección de inicio del block de datos, que esté libre , por ejemplo 0x21