Вы пытаетесь в цикле поменять текст сообщения на тот же самый текст.
Протокол телеграмма не позволяет этого делать, потому что это бессмысленно.
Вы можете:
1) помнить предыдущий текст и сравнивать новый с ним, чтобы вызыватьредактирование только если текст изменился.
2) Перехватывать и игнорировать MessageNotModified, если считаете, что эта ситуация будет редкой и лишний трафик на сервера телеги вас не беспокоят.
3) Вы можете чисто логически не редактировать сообение, если исходные параметры его не поменялись.
4) вы можете гарантированно менять исходные параметры сообщения, чтобы оно гарантированно изменило текст.
Выбирайте решение на своё усмотрение. А в той второй ошибке, что вы привели в комментах, вы не учитываете, что счетчик у вас глобальный на уровне модуля и достуен во всех функциях модуля, но если вы делаете его присвоение в коде функции, то в ней появляется локальная одноименная переменная, которая перекрывает глобальную, но в конкретно этом случае вызывает ошибку, поскольку при первой итерации у вас локальная переменная еще не определена, хотя фактически объявлена.
Вам нужно почитать как в питоне работают неймспейсы, как объявлять переменные в функции из глобального скоупа.