Du solltest die Routine COUNT nur als subroutine aufrufen also

COUNT:
....dein CODE
RET

In deiner ISR schaut das dann so aus:
PUSH temp
IN temp,SREG
PUSH temp
PUSH zaehler
....dein CODE
RCALL COUNT
POP zaehler
POP temp
OUT SREG,temp
POP temp
RETI

Natürlich müssen alle verwendeten Register gesichert werden, mit ausnahme derer von denen Werte in das Hauptprogramm übergeben werden sollen, was z.B. bei "zaehler" möglich wäre.
Dadurch muss auch die Main Routine umgebaut werden:

MAIN:
....dein CODE
RCALL COUNT
RJMP MAIN

Ich hab den kompletten Code noch nicht auf Funktionsfähigkeit gecheckt, das kannst Du ja mit dem Simulator vom AVR Studio noch machen.