В итоге обошелся более простым методом, который меня устроил:
1. Уровень защиты не такой жесткий, но достаточный
2. Мне надо было блокировать все, кроме одного столбца (заказ-проформа).
В итоге:
X++:
void ProtectSheet_WO_Range(str _pass, MSOfficeBookMark_RU _bookMark, str _rangename, int _worksheetid = 1)
{
com range,worksheet, protection, allow;
;
worksheet = this.getWorkSheet(_worksheetid);
range = worksheet.Range(_bookMark);
protection=worksheet.Protection();
allow = Protection.AllowEditRanges();
allow.Add(_rangename,range);
worksheet.protect(_pass);
}