@rastaman29, тебе нужно затирать предыдущие символы, прежде чем рисовать новые. У тебя "отрисовываются" только новые необходимые пиксели, старые "не трогаются" и сохраняют свою информацию в памяти дисплея. Таким образом символы будут постоянно перекрывать друг друга, и это будет накапливаться, пока все возможные цифры на всех возможных местах не побывают)
Как это делать с учетом картинки-фона - хз. Думаю, что околоневозможно - разве только записывать в память кусок текущей картинки под временем, и перерисовывать его. Оно того не стоит, в общем
У меня пока на черном фоне отображается текст времени для теста, соответственное каждое обновление времени зарисовывается черный прямоугольник через tft.fillRect(0, height - 20, width, 20, TFT_BLACK), а поверх него уже печатается время.