TCNT is normally not writeable or resettable to zero. Except see TSCR2 register TCRE bit description. You may use this bit to clear TCNT on TC7 output compare.
Calculations won't get wrong on TCNT overflow. Example:
you detect rising edge on t1=TCNT=0xE000
...
some tousands ticks later TCNT overflows from 0xFFFF to 0
...
few ticks later you detect another pulse edge, say at t2=TCNT=0x3000
Unsigned difference t2-t1=0x3000-0xE000=0x5000. Isn't it correct? Use windows calculator, scientific view->Hex, switch from QWord word size to Word and verify.
From t1=0xE000 to overflow it takes 0x1,0000-0xE000=0x2000 ticks, then from TCNT=0 to t2=0x3000 it takes 0x3000. 0x3000+0x2000=0x5000. Overflow won't hurt you while your pulse width is shorter than 0x1,0000 timer tickes. It absolutely makes no difference if you reset TCNT or remember starting TCNT value and then remove this bias later.
I know you want to make it simplier for now, you may not like S12X timer. But IMO one free running and not writeable timer counter plus 8 input captures / output compares (IC/OC) is definitely way better than say 7 timers and 7 IC/OC. For me, having single free running timer and 8 IC/OC is the same like having 8 independent timers. Show me other MCU that has so many timers. I used PIC18Fx48 as lower end CAN enabled MCU. It had 2 IC/OC, 2 16bit timers and 2 8bit timers, IIRC. All it is a lot less flexible than single timer and 8 IC/OC.