I have always ignored the "canon" ages.
The ages are not mentioned anywhere in the game. In fact, if I didn't browse internet communities for the series, I wouldn't even know the protagonists had canon ages.
Pokemon has a pretty simplistic artstyle for its human characters, which means that the lack of features make it harder to give a precise age to the characters. Their faces lack detail and the proportions of the characters mean that the different in height between kids and adults is pretty minimal aside from the extremely young ones (Youngsters and Preschoolers for example). In real life, you can usually tell a person's age by their face, but in Pokemon, they'll use other features to show a character's age, such as the way they're dress, a beard, or a hairstyle; even though a teenager could easily dress like an adult, use an "adult" hairstyle, and possibly have a beard (some teenagers get one early).
Compare the difference here in height between Steven (an adult man) and May (a supposedly ten years old girl). Steven is merely half a head taller than her. And no, that's not an issue of Steven being small; his sprite is actually the maximum possible height for trainer sprites in RSE. May does not have any feature that precisely shows that she's 10 years old. She could equally be 15 or 20. As such, I have no reason to accept that her canon age is 10, and I'm free to believe whatever age I thinks fits her better, just like I do with every other characters with no given age.