The ParserOutput has a getProperty and setProperty method
https://gerrit.wikimedia.org/r/#/c/244379/ demonstrates how the RelatedArticles extension can work without CustomData.
What else uses CustomData is there a unique problem it solves or should we look to sunset it?