Откуда появляются символы после сохранения файла?
Делая так:FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate);
fileStream.Write(data, 0, data.Length);
fileStream.Close();
Если у вас уже есть файл размером в 10 байт, то записав 5, вы получите размер файла в 10 байт, так как файл не пересоздается и FileStream просто переписывает значения с позиции 0.
Вот и появляются лишнии байты.
Вы пишите с 0 байта и ни какого профита вам FileStream не даёт, просто используйте System.IO.File, там проблем быть не должно, почти всё заданно по умолчанию.
Можете выложить выходные данные? Конкретно: входной массив байт, то что он сохранил, и то что прочитал?