Hi Mike,
The first thing I noticed was:
Code:
;@   INT_ENABLE   INT_INT     ; enable external (INT) interrupts
;@   INT_ENABLE  TMR1_INT     ; Enable Timer 1 Interrupts
Which, since you habe these commented out, means that you don't have the interrupts enabled when you get to your Main routine.

Secondly, if you want to use TMR1 to measure the "time of flight" you'll have to set it up as a timer and then start it (T1CON.0=1) when you want to start measuring - probably just as you start sending the 40kHz pulse I guess? (I see you have a T1CON.0 = 1 in there (commented out) but letting the timer free run probably won't work very good.

Third, TMR1 is 16bits wide, at 4Mhz you'll have 1us/tick so if starting at 0 you'll get an interrupt after ~65ms. If that's good enough, simply set TMR1H and TMR1L to 0 before starting it and it'll time out after ~65ms generating the interrupt (if enabled). If you need 60ms you'll have to preload TMR1 with a value other than 0, in this case 5535.

When the SignalDetect interrupt fires you stop the timer and grab the value, then you reset or preset it so it's ready for the next measuring cycle.

Forth, I'm pretty sure you don't need to turn off and on the interrupts in the handlers - what's the reason for doing that?

Just some pointers, I hope it helps.
/Henrik.