Код конечно адовый.
Судя по условию у вас логика наоборот.
Вы перебираете всех клиентов во вложенном цикле и если chat_id не подходит и подписка не активна удаляете из группы.
Поэтому и кикает всех.
Так как при первом же несовпадении искомый удаляется из чата.
Поэтому дальше перехват исключения, ибо пытается кикнуть много раз того кого уже кикнули.
И летит исключение
Надо дать один запрос в базу клиентов и проверить есть ли вообще клиент с этим chat_id.
И если нет после этого кикать.
Нахера перебирать всех клиентов история умалчивает.
Это как я понял, контекста мало.