i buy throughout the year and have done for years. it helps spread the costs and takes the pressure off closer to Christmas.
a few tips from me;
im always on the look out for gifts eg doing my weekly food shop, going on holiday/day trips, popping in to B&M or Home Bargains etc.
Sales are a good opportunity for bargains for the following Christmas/next birthday. I would buy clothes/toys a season ahead for my children when they were little.
Try ebay/vinted. i wanted to get MIL a particular item which was £25 and found it BNWT on ebay for £15.
i know you said that it is unlikely that your teens tastes will change, but 12 months is a long time. So, i buy practical/generic items through out the year eg water bottles, gloves etc and nearer to Xmas, buy the things suited to their specific interests.
When you buy ahead, make sure you thoroughly check whatever you buy before putting it away. you won’t be able to return an item at you buy now and discover it is damaged in December. so check parts aren’t missing or broken, check clothes (missing buttons, zips work, rips or stains).
i keep a list on my phone for gift ideas as they come to me, so i can keep an eye out for them. For example, DS birthday is in the spring and i was thinking of getting him some new air buds, so i’m waiting for them to go on offer, which they will at some point.