I worked it out differently to all of you - I didn't use algebra, but more of a trial and error approach.
So first I worked out that, assuming everyone is an integer and the maximum age is about 100, Xavier must be at least 7 (so Tom can be 1) and no older than 33 (Gavin being 100, John being 99.)
I tried 7 to start. John is then 21 and Gavin 22. That makes Tom far too old. No. So I then started thinking about how John has to be a multiple of 3 and Gavin a multiple of 4 and they have to be one apart from each other. The next time this occurs is 27 and 28, which would make Xavier 9, but Tom older than 3.
I realised I had to make a larger jump forward, so I was going to try 15, but DH was going on about 27, so I tried that. John 81, Gavin 82. Not a multiple of 4 (I can't remember the proper word for this ) so fail. But I calculated tom anyway to see how close - 20.5.
Very close. So 26 - 78 - 79. Nope. 25 - 75 - 76, tom must be 19, and it all works, so Xavier is 25. :)
Probably the algebra is more efficient, I only took maths to GCSE, and that is the way that came to mind to solve it.
Interesting, anyway.