It's likely caused by an allergy; you have to figure out what he's allergic to and stop or treat that.
Could be environmental, just like us, or a food allergy. Environmental allergies are much more common than food allergies though food allergies are easier to treat
Environmental allergies can be treated with Benadryl. They also can do allergy testing to pinpoint the problem. Has your vet not explored the cause behind these at all? If they haven't, and have instead just been treating the individual sore, I would find a new vet. I'm so so so so so happy with a holistic vet that explores the entire dog and not just the one problem.
If it's food, you have to figure out what the dog is allergic to foodwise. Putting them on a lamb and rice food doesn't do any good if they are allergic to rice. Common allergents are protein sources and corn, though some can be allergic to soy, rice, etc. You have to do an elimination diet just like with a human and see if you can find the problem. You have to learn to read a dog food label and ensure that the dog isn't getting that ingredient in ANYTHING they eat. Some food makers are very sneaky in labeling - don't believe them when the bag just says "lamb and rice" - read the label. Many still use other protein sources. You have to stick to a few ingredients only for 8 weeks minimum, it takes that long usually to see a difference. No treats or anything that have any ingredient other than what is in the food.
Treating both environmental and food allergies is often cheaper than testing to get a clear answer. Meaning, it's cheaper to try giving BEnadryl for a few weeks and changing to a special food for 2 months instead of doing all the testing.
Your poor dog shouldn't have to suffer =( Those steroid shots are really bad news, esp longterm, and there are other better ways to treat allergies longterm. I hope you can find the cause and help him!