1. не совсем понятен момент с ИНН и именем кассира (поле PrInUserParam_T). Зачем его сравнивать с тем, что запрограммировано в кассе? Если передали новые данные в чеке, то их и печатать и отправлять в ФН и ОФД, не передали - использовать из настроек кассы. Так логичней будет, иначе граблей много появится из-за несоответствия написания имени кассира Иванов или ИВАНОВ.
2. Интересно бы посмотреть протокол нижнего уровня. В драйвере в ответе первое поле PrError_T, а оно переменной длины. нигде не увидел указателя на длину этого поля. Возможно, в нижнем уровне это уже учли.