Leonardo: Counter++ "hickups"? Different results for 1 Second

You need to start over with your understanding of interrupts. Interrupt handlers must be fast. Serial printing is not. In fact, serial printing relies on interrupts being enabled, which they are not when an interrupt service routine is called.

time1 and time2 are pretty dumb names. They represent the time that some event occurred, presumably. Name the variable to reflect the event of interest.

Finally, variables that are to be used in ISRs and in other functions must be volatile. counter is not.