Hi Heather,
I've had a very quick look at the scores you have posted on behalf of your son and the TSG calculation is correct starting at the game at Wanstead on 20th April. At Wanstead he played as a 25 handicapper and since then he's been, correctly, cut each game.
I'd guess the difference between his TSG handicap (18) and his club handicap (15) is based on the difference in starting position (what was his club handicap when he played at Wanstead in April?) plus the number of games taken into account (with TSG you have posted all his games, from different clubs, and he's been doing well, but his club handicap will only be based on the competition games played at his club - very few).
Hope that helps.
TSG Golf Team