We need a new law, maybe
We already have a law which obliges train operators to sell passengers the lowest-priced ticket available for their journey. (In theory, if you were sold a ticket for a journey and later find that you could have bought it cheaper, you could take them to court and reclaim the difference. In practice, nobody does because it's too much bother.)
Perhaps we need an extension to this: if for any reason the train operator is unable to sell passengers the lowest-priced ticket for their journey, they should be obliged to allow them to travel for free.
It would be better, though, to ask *why* the same journey can be sold at so many different prices in the first place?
Privatisation really was the worst thing to happen to the railways since they were nationalised!