Timer interrupts disabling USART serial comm.

I am using Timers 1, 3, 4 and 5 to generate background waveforms by toggling pins in their respective ISR routines. However, I found that this interferes with the Serial.read() function... which I need to receive Timer OCRAn values to modify the waveforms on the fly.

Does anyone know if there is a way to write my own Serial ISR and give it a higher priority than the Timer interrupts?

When I utilise USART2 directly and use my own ISR routine, avrdude claims the interrupt vector is already defined and my code will not work.

Any help would be appreciated.

sm