Вы можете сделать свой код немного короче, используя Array.Copy, но нет никакой перегрузки GetBytes или аналога в BitConverter, который помещает байты непосредственно в ваш буфер.
Может быть BinaryWriter на MemoryStream это то, что вы хотите?
Обратите внимание, что, приняв соглашения API BitConverter, которые вам не нравятся, вы создаете ту же проблему для пользователей вашего класса. Вместо этого напишите метод, который принимает BinaryWriter и сериализует в него ваш класс, это прекрасно расширяется, когда ваш класс внедряется в какой-то другой объект.