I'm adding this as a new answer regarding the census information and images that were added to the question after I had given my earlier answer.
You show the 4 census records for Mary for 1881, 1891, 1901 and 1911. I believe the record for 1901 is a different family, because:
1881 and 1891 give her first names as Mary Ann. 1911 gives her name as Mrs. M. A., ...
I have several thoughts on this:
Ages given on census rolls are not accurate and can be as much as 10 years off either way. Compare ages in different census rolls for the same people and you'll see what I mean. I would have to think that much of the time, the census taker did not ask the people their age but simply guessed it. The birth certificate is ...
Two common reasons for lying about age at marriage were:
Pretending to be over 21 (and so not needing parental consent)
Adjusting your age to be closer to your partners.
Possibly you have examples of both.
The simple answer is probably the obvious one, that they were "creative" with the ages they gave the registrar when getting married, probably because of the age difference, or because William was under 21 so would have needed parental consent if he gave his true age.