сейчас речь не о передаче данных, а о присвоении данных внутри программы, смотрите внимательно, массив начинается с индекса 1, значит два байта присвоенного ворда через указатель на восьмой индекс создают полный хаос и никакое выравнивание тут ни причем. Первым делам надо объявления привести в порядок, тогда и вся остальная цепочка вплоть до передачи по сети возможно пройдет нормально без ошибок