This is not an answer per se. It's just something I want to share but a bit too long for comments.
I (not a native English speaker) normally uses two approaches to deal with such exercises, with high success (though not 100%).
One approach is to read it out aloud and see if it sounds right.
My other approach is to see how difficult (or how easy) that quality can be changed. For example, a sleeping bag was made as a sleeping bag. It can be old after some time past. It can be torn too. So I would say a torn sleeping bag or an old sleeping bag, since it's a sleeping bag anyway. Another example is a blue car that is broken. It's likely that it was made blue when it was manufactured, and turned out to be broken later. So I would say a broken blue car.
The big vs. small and young vs. old are quite tricky for me, since they usually go together for living things such as animals and people (e.g. a big old man, and a small young boy). So my guts usually said "big old" or "small young", and in this case "small old", which is likely to be off, when compared to native speakers.
To me, if I had to say those examples, I would personally say a torn small and old sleeping bag, a broken small and old car, a broken blue car, a ten-year-old brown-haired boy.
NOTE 1: I feel that small and old can swap their positions, and they're quite awkward to say. That's why I added the word and automatically when I tried to say them.
NOTE 2: I prefer a ten-year-old brown-haired boy instinctively, perhaps because from my world view, people's age can change easily than their hair color. But that's just my view. Actually I would say a brown-haired, ten-year-old boy is fine too.)
For more details, I would like to recommend reading Mari-Lou A's answer in https://ell.stackexchange.com/a/13577/3281.