Steve,

if I understand this correctly
the advantage of using TIMER1 is:
I don't need to change the sampling time for different ranges.

I would always sample 1000ms and check the overflow bit in a loop.
for every overflow detected a separate counter is incremented and the overflow bit is reset.

with this technique I should be able to get a resolution of 1Hz even at 50MHZ.

Well, it could be a challenge to deal with numbers that big
having only WORD variables.

is this correct?