I very much feel for you, not really any excuse for being so rude.
But buying for teenagers is practically impossible.
I’ve got two thirteen year old granddaughters, one lived with us for years. I know their favourite shops, but I wouldn’t buy as much as a T-shirt without checking with them, I’d be 100% certain of getting it wrong.
If I bought a surprise present, I would always enclose the receipt, and say feel free to get something you prefer, but I would be very cross if they just gave it back unwanted.
You relationship does sound a bit strained, next time why not take them out to choose their own present, get lunch, make a day of it.