+1 for heralding MikeWh's intervention in this matter.
Some TOCs have a bit of a funny approach with Oyster. After all these years, the product still doesn't seem to be well understood and we occasionally hear these stories of customers using an Oyster card correctly, revenue protection staff wrongly taking a view that the use is illegitimate and management staff supporting them when the case is appealed.
When something isn't well understood, it usually makes sense to defer to a subject matter expert to look at things more forensically. TOCs have staff on their books who can do this with Oyster and TfL is an obvious place to seek advice given the administer the Oyster fares and logic. For whatever reason, revenue protection departments don't like utilising the people with the correct knowledge to provide an informed view on something that is clearly a complex technical matter.
However, looking at this pragmatically, if this is the first time in 10+ years of Oyster PAYG that such a phenomenon has become apparent, it's likely it'll be ruled that nobody is at fault. This may come as a disappointment but in a unionised industry, there are inherent issues with disciplining staff for getting something wrong when they haven't been specifically trained on it in sufficient detail. I also don't have the railways down as a business that likes making reparation to people it has wrongly put through experiences like this, but are likely to if their hand is forced.
Given the Single Fare Finder suggests a Zone 1-5 fare is the default* between Lee and East Croydon, a Zone 1-2 fare should have been charged. Once the logic is fixed in the Oyster system, I wonder just how many savvy passengers had accidentally or otherwise realised this for similar journeys and will suddenly start being charged correctly as a result!
*Default meaning the zones TfL determine to be most likely to be passed through if there are no intermediate validations.