I would switch his food. Check for food allergies (via trial and error). I think that would make a huge difference. I would try something grain free first.
Good luck! And don't forget, bathing a dog too often can severely irritate his skin and dry it out, even if you use tea tree oil. My (Vet) boss in Germany always said not to bathe a dog more than twice a year, unless of course they got really nasty somehow.
Okay, again, good luck.