А исчо посмотреть, где в программе производится запись в TIFR для сброса флага. Старые грабли: пытаешься по инерции написать TIFR |= (1<<TOV0), и сбрасываешь не один, а ВСЕ установленные флаги прерываний. Надо писать TIFR = (1<<TOV0)! Хотя это приводит, наоборот, к потере прерываний, но не к возникновению оных.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)