Все очень просто - во-первых, нужно сначала нужно сбросить таймер, а уж потом сбрасывать его флаг - при сбросе таймера флаг имеет право взвестись снова точно так же, как это происходит при переполнении таймера на ходу. И, во-вторых, сброс таймера нужно вести в строгой последовательности - сначала старший, потом младший байт (но это я просто для порядка добавил - надеюсь, ты и так это делаешь правильно)