Hi, FC:
If there a reason why you set the modulo register? I see that it's giving you an overflow every 10 milliseconds, but do you really need that? Could you live with an overflow every 16.384 milliseconds?
If you leave the modulo register at its default, you can ignore the issue of which one was greater. If you do a 16-bit subtract, the answer will be correct, regardless of when the timer overflow occurs.
As per your example:
First input capture value = 0xFF00
Second input capture value = 0x0060
If you subtract the first edge from the second:
0x0060
-0xFF00
_______
0x0160
The answer is the correct number of counts between the two edges.