Не лучше ли читать все holdihg регистры одним запросом, а потом выбрать нужные данные?
Задача с циклом в 1мс с копированием значений с аналогового модуля - зачем она?
Ну и некоторые значения в SMSD читаете 1 регистром, но в руководстве на SMSD они указаны как 32битные (0x5006, 0x500E).