Процедура UTF8Delete объявлена так:
procedure UTF8Delete(var AStr: UTF8String; AFrom, ACount: Integer);
, перед параметром AStr стоит ключевое слово "var", это означает, что параметр должен быть передан по ссылке (работа напрямую с переменной), а не по значению (работа с локальной копией переменной). Т.е. данная процедура возьмёт указанную строковую переменную и будет работать с ней напрямую, меняя её. Поэтому передать
свойство "aVar.AsUTF8String" в эту процедуру нельзя, нужно обязательно передавать переменную. Верное решение предложил
TeNQ выше, нужно объявить отдельную строковую переменную и получить в неё значение "aVar.AsUTF8String", затем работать с этой переменной удаляя в ней символы.