Долго искал решение, в итоге помогла техподдержка Битрикс. Привожу их ответ здесь, может кому тоже пригодится:
Для решения вашей задачи, вы можете использовать метод "setApplyResult" (https://dev.1c-bitrix.ru/api_d7/bitrix/sale/classes/discount/setapplyresult.php), который позволяет указать, какие из выбранных скидок и правил исключить из расчета.
CModule::IncludeModule("sale");
$order = Bitrix\Sale\Order::load(145); // 145 - id заказа
$discount=$order->getDiscount();
$discount->setApplyResult(array(...
10.01.2022 13:40:18