Для начала - отказаться от использования CCatalogDiscount::GetDiscountByPrice. Это метод-обертка, внутри которого идет получение цены по ее ID, а затем получение скидок для ТОВАРА через метод CCatalogDiscount::GetDiscount. Получите скидки для требуемого типа цены, потом считайте их.
Не надо сверлить зубы через задний проход дрелью от Сваровски