Vous devez regrouper par mois et par année les parties de ad.xDate. Il n'y a que douze mois dans l'année et vous devriez voir les deux (14 - 2) premiers mois de vos résultats avec des totaux trop importants car ils représentent en fait une combinaison de deux mois calendaires.
Cela a fonctionné dans votre version d'origine car il y a plus de 14 jours dans un mois. Si vous avez essayé d'étendre cette ancienne requête au-delà de 31 jours (ou 28, 29, 30 pour certains mois), vous rencontrez à nouveau le même problème.
...
SELECT
'playing' As activity,
min(ad.xDate) As xDate,
Isnull(sum(t.TimePerDay), 0) As TimePerDay
FROM AllDates As ad Left Outer Join @test As t On ad.xDate = t.date
GROUP BY Year(ad.xDate), Month(ad.xDate) /* <--- change here */
ORDER BY xDate