Counter_X_20ms ist in der common.h als uint8_t definiert....
dann versuch mal volatile uint8_t zu nehmen und schon klappt es mit der Optimierung

und
Code:
TIFR |= ( 0x01 << TOV0 ) ;
kannst Du auch weglassen.
1. ist es falsch
2. das macht die Hardware für Dich

Gruß Sebastian