1. Официальная документация от Atmel предписывает выводить данные в последний порт только с обязательной проверкой соответствующего флага. Может быть USART не успевает передать данные, в то время как ему даются новые?
2. Для измерения длительности импульсов следует использовать т.н. "захват". Искать в документации по слову "Capture". К сожалению я не знаком с этим делом, поэтому более подробно ничего сказать не могу.
Ну, а цифры действительно будут разные, ибо "джиттер" ("дрожжание", "подергивание" сигнала во времени) никто не отменял
Выбор.