Потмоу что в структуре сперва написано hi, а потом lo. Поэтому сперва сохранены байты верхней половины, а потом нижней. Почему low и hi расположены так - вопрос к программистам, которые структуры создали.
Соглашусь, что это выглядит как косяк, потому что нельзя будет взять нативное 128 битное целое и загрузить из ранее сохранённого файла, т.к. порядок байт будет неправильный. Разработчики не подумали, что 128 битные целые могут быть добавлены "скоро".
Если бы структура сохранялась через указатель на структуру и sizeof(uint128), то порядок байт был бы правильный и совместимый с потенциально добавленными 128 битными целыми. Так что, в первую очередь, это косяк (библиотеки) сериализатора этой структуры.