Interrupts and timers

TIFR1 |= (1 << TOV1); //clear all Timer 1 Interrupt Flags

does not write a 1 to the TOV1 only, it will clear any other set flags in that register that happen to be set, I would use:

TIFR1 = (1 << TOV1);