Я обнаружил, что байт [], возвращенный с сервера sql, имел неправильный Endian-ness и, следовательно, преобразование в long (Int64) не работало правильно.Я решил проблему, вызвав Reverse для массива перед передачей его в BitConverter:
byte[] byteArray = {0, 0, 0, 0, 0, 0, 0, 8};
var value = BitConverter.ToUInt64(byteArray.Reverse().ToArray(), 0);
Кроме того, я подумал, что лучше конвертировать в UInt64.