It seems to me the correct way to handle this is to force the company to accept competing offers at the intermediate steps.
If I understand how most of these work, it's something like:
Actual Cost:Price0, Producer:Price1, Middleman:Price2, and Retailer:Price3 - profit for each is price - cost. One company owns all three companies. So Price0 and Price3 are determined by the market, and locations can't be moved. Price1 and Price2 are whatever the company says they are, and can be moved to anywhere in the globe to reduce taxes. Companies that own all three of these stages make Price1=Price0 and Price3=Price2 and Price2-Price1 = maximum profit and wherever in the globe taxes are lowest, even though the Middleman doesn't do anything.
It seems to me the way to fix this, is to force the company to sell at Price1 to anyone who wants to buy, not just the companies owned by the same parent company. Watch Price1 suddenly be what it should be (i.e. very close to Price3).