I think you in a sense answered your own question by changing providers. Something about being there is the trigger, and though you didn't say so, I'd bet that the day care he's currently in has younger kids, maybe even mostly younger kids, is that right? He may be throwing up "on command" to get attention at a time, mealtime, when younger ones are probably getting a lot of attention.
You're smart to move him to setting where he will interact more with kids his own age. Be aware though that if he throws up there, they will send him home and probably tell you not to send him back until he has spent 24 hours vomit-free -- that's the policy preschools around here would use. He will have more consequences in preschool if he vomits there -- not "consequences" like discipline! but consequences like being sent home immediately, not at the end of the day, and being required to stay home for a full day, etc. Probably it won't even be an issue at the new preschool since he should be engaged and interested if the place is good.