TMR1 = 0 : TMR1 = 0 ' not sure why I have to clear it twice
I think you're supposed to:
Code:
TMR1H = 0
TMR1L = 0
Your "PAUSE 1000" means that at best, you can only update your t1_count (tachometer) value once every second. Is that sufficient?

I'd like to suggest reading Microchip's AN1980 Application Note. It deals with the Angular Timer function on the PIC16F161x parts, but lots of practical information that should help you.