Разобрался, дело оказалось в неверном порядке действий в функциональных блоках, отвечающих за соединение двух байтов в одно слово и наоборот. Короче, мой программный косяк.