You could record yourself talking, then type down what you said, and see if you're making any linguistic mistakes in your speech you are not making in your writing.
I think you should identify if this is a content or a presentation issue in your speech causing the confusion. It could, of course, be a little of both.
The third entry in your list makes me think this might be an accent issue, and thus presentation. Many accents become easier to understand over time, so people you work with - and thus talk to more - will understand better than people off the street. There's probably not a lot you can do about that, but there are some options:
- Find a group that does presentation/pitch/similar practice. Look on Meetup, Facebook, or other websites for your area. You can probably get feedback from at least someone in such a group on specific parts of your speech that are confusing.
- Alternatively, find some sort of ESL group. This would probably be easier if you're in a big city, or your native language is more common (Spanish/Chinese). Some might be intended for only native speakers of certain languages. You could, however, ask even those groups if they would be alright with you participating. I doubt they'd say no.
- Take a class (possibly ESL, possibly not) at a community college that's heavy in presentations and ask the teacher to help you. They probably will be happy to note down any issues for you.
In any case, make sure to just tell the people involved you're there because you want to improve your spoken English.
If you are having issues with your content, that would likely be connected to your writing. You could try something like writing fanfiction. Let me tell you from experience, criticism is easy to come by in such a field even for native speakers. Writing dialog for characters - as opposed to, say, posts on StackExchange - will force you to use the same kind of language that you would use in normal speech, and might let you find errors in it that could throw people off.