В обработчике прерывания (как TXC, так и UDRE - результат одинаковый) устанавливается флаг окончания передачи. Программа его опрашивает, а при установленном флаге записывает очередной байт в UDR и сбрасывает флаг.
Судя по тому, что передаются только 2 байта, прерывание вызывается сразу же после записи данных в UDR. Что за байда? У меня скорость 9600, а частота кварца 4 МГц, не могут данные так быстро улетать...