Well there are some separate issues to address here. One is tackling why it is happening in the first place and put a stop to it. The other is helping you be more assertive in the moment so you don't get teary etc.
Have you talked these people afterwards about why they raised issues publicly after having previously not had any concerns? I mean you know why but they need to be made to explain themselves.
I'd put them on the spot about this and do it in person. I'd try my "disappointed in you and feeling let down" face and tone, saying how it makes you feel and then follow it up in an email afterwards repeating that 'in future I'd really appreciate if you can give me constructive feedback in advance of any presentation. As I said, it can feel quite undermining to have issues or disagreements being raised at the presentation when and there was an opportunity to tell me this in advance and you led me to believe you had no major concerns". Be prepared for any possible excuses (I changed my mind, I thought about it in more detail, had not time to let your know etc) and be ready to reiterate that even in those circumstances they should take you aside asap to talk about it. Not spring it on you at the big meeting. Be ready to be blunt, "well actually John, that's not good enough and I feel if you intend to change your opinion and disagree with me in a big meeting like that you should do me the courtesy of letting me know" AND big guns "I feel you do this mainly because the bigwigs are in the room and you want to make an impression on them. That's not fair on me".
Have you discussed it with your line manager or anyone else more senior? Or are these some of the people doing it? You need to ask them for advice if possible, to find ways to stop it happening and how to cope better in the meantime.
Have you ever had some assertiveness training and if not can you ask for some?
Lastly, if I was you then I'd be opening the next presentation by saying something like " as you all know, I have circulated this for comment i advance. Thank you to X, Y, Z for getting back to me with comments about (give some examples) But I was very pleased everyone agrees broadly with the idea/main message/approach to this". You've now made it MUCH harder for them to challenge you.
Then if X, Y or Z do raise a disagreement they did not feed back earlier I'd be responding, in mock surprise "Oh thank you Fred, but it would have been good to have had that point in your feedback so I could consider it before today, but I will certainly take it into consideration now you have raised it". OR say to the bigwigs, "it's clear I need to talk to my colleagues further about the points they have raised today as I was unfortunately not aware of these concerns".
In essence dump them in it. With a smile on your face and a positive, professional tone in your voice. Fake it until you make it.