#define iron TCCR1A |=(1 << COM1A0); // Toggle on match with OCR1A
#define iroff TCCR1A |=(0<<COM1A0);
That's how you turn a bit ON but not how you turn a bit OFF. Shifting a 0 always produces a 0. ORing anything with 0 leaves it unchanged.
Try:
#define iroff TCCR1A &= ^(1<<COM1A0);
The '^' operator is the binary inversion. It turns the 1 bit to a 0 and all the 0 bits to 1s.
The AND operator '&' then leaves anything ANDed with a 1 bit unchanged and anything ANDed with a 0 bit set to 0.