delay function and interrupt problem

If anyone could give me another hint it would be appreciated.

I don't see anywhere where you detach the old interrupt handler before attaching the new one.

Have you looked at the Menu library, on the playground?