Timer1...can't enable/disable.

#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.