Повозился ещё немного и вроде как вот такой финальный код работает правильно:
X++:
purchLine.PurchQty = newQty;
PurchLine::modifyPurchQty(purchLine, purchLine.inventDim(), false);
InventMovement::bufferSetRemainQty(purchLine);
purchLine.update();
Всем спасибо.