In our case we were overwriting the originalprice in an observer, which did not come through to the order item.
Setting a breakpoint in \Magento\Sales\Model\Order\Item::setOriginalPrice you find that it is called on order by \Magento\Quote\Model\Quote\Item\ToOrderItem::convert
The original price is already in the $item passed to that function.
In my case the original_price is taken from the base_original_price, which is set to the catalog price.
This is happening in \Magento\Quote\Model\Quote\Address\Total\Subtotal::_initItem which calls
$finalPrice = $product->getFinalPrice($quoteItem->getQty());
An option would be to overwrite the \Magento\Quote\Model\Quote\Item\AbstractItem::getBaseOriginalPrice
and overwrite the original price with the custom original price.