U moet de onderdelen van ad.xDate zowel op maand als op jaar groeperen. Er zijn slechts twaalf maanden van het jaar en u zou de eerste twee (14 - 2) maanden van uw resultaten moeten zien met totalen die te groot zijn omdat ze eigenlijk een combinatie van twee kalendermaanden vertegenwoordigen.
Het werkte in uw originele versie omdat er meer dan 14 dagen in een maand zijn. Als je geprobeerd hebt om die oude zoekopdracht te verlengen tot na 31 dagen (of 28, 29, 30 voor enkele maanden), dan vind je hetzelfde probleem opnieuw.
...
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