Если ваш байтовый массив является представлением строки UTF8, ваш код работает неправильно, так как вы используете простую кодировку ASCII, которая по-разному обрабатывает эти символы в пределах определенного порога (общие точки кода ниже 0x7F).
Вы читаете строку UTF8 из байтового массива следующим образом:
string text = System.Text.Encoding.UTF8.GetString(bytes);
и вы конвертируете обратно
var bytes = System.Text.Encoding.UTF8.GetBytes(text);