DrAzzy:
^ is bitwise xor - it requires two operands.~ is bitwise not, which is I think what was meant.
I would use the timer in PWM mode, and turn on and off the output compare to get the data out, rather than using interrupts and CTC mode.
Sounds like a better idea! I am out getting lost in the mountains for 3 days now so may be back with further issues early next week. Thanks for the help and suggestions.