А Вы в какой момент буфер разбираете? Просто смотрите значения в буфере, который используется с ф.б. из ModBus.lib? Этот буфер используется и для запросов и для ответов, необходимо в нужный момент (после того как блок отработал, но не запустился снова) разбирать данные ответа.

На счет долгого открытия порта - покажите свой проект, как Вы работаете с портом.