That's a strange but correct interaction.
Haggler compares the current cost of the card you bought (and from which Haggler triggered) with the current cost of the card you want to gain. So in your examples, Haggler uses the current (that is reduced compared to what you paid) cost of Destrier.
For the first case, that means you can never gain a Destrier with Haggler from buiying a Destrier, and in the second case, the Destrier was now costing $4 and so Port is not available to gain.
Haggler compares the current cost of the card you bought (and from which Haggler triggered) with the current cost of the card you want to gain. So in your examples, Haggler uses the current (that is reduced compared to what you paid) cost of Destrier.
For the first case, that means you can never gain a Destrier with Haggler from buiying a Destrier, and in the second case, the Destrier was now costing $4 and so Port is not available to gain.