Ummm.... on track?.... well maybe you're on a siding but you've not reached the main line yet... theory might be there, but reality it won't run - way to go yet...

Tenths var word
Units var word
Tens var word
Hundreds var word
Thousands var word
Tenthousands vAR WORD

Where's the PIC initialisation here? No Registers are configured, no I/O, TMR1 is not set up to accept external pulses...

Gosub SetTimer ' Set the Timer
On Interrupt goto CounterA
PIE1.0=1 ' Enable TMR1 Interrupts

At this point your program runs into a subroutine without calling it. You should have a logical program loop.

SetTimer:
T1CON.0=0 ' Stop the Clock
TMR1H=$AB ' Set Timer Highbyte
TMR1L=$A0 ' Set Timer Lowbyte
T1CON.1=1 ' Restart the Clock
PIR1.0=0 ' Reset TMR1's Interrupt Flag
Return

Your program encounters a Return with nowhere to return to... so at this point it dies - quite apart from the fact it's counting INTERNAL clock ticks.

You've not set any ENABLE/DISABLE to identify which sections of your code will be interruptable, and which sections should be protected from interrupt.

That's just a starter without going into any depth.