оооочень классическая ошибка.
Проблема (как и всегда в вопросах TableView здесь) заключается в том, что вы неправильно используете механизм повторного использования TableViewCells.
Вы должны попытаться удалить из очереди (перезапустить) существующую ячейку, и если она не возвращает ячейку (табличному представлению не удалось перезапустить старую - уже выделенную, но больше не использованную - ячейку), то выделите ее. и настройте каждое свойство, которое будет общим для всех ваших ячеек (шрифт метки, добавление подпредставлений, изменение цветов и т. д.).
Затем за пределами «если» - то есть, является ли ячейка вновь выделенной или ячейкой, которая была переработана (из ранее выделенной, но не более использованной ячейки), во всех случаях - заполните ячейку конкретный контент, который зависит от indexPath (текст, изображение и т. д.)
Прочтите Руководство по программированию табличного представления в документации Apple и поищите в StackOverflow, есть много вопросов о TableView, которые имеют одинаковую проблему.