I speak highly flawed Spanish. One of my teachers once told me - If you know you are making mistakes when speaking, thats half the battle won! But i can talk anything with any native speaker with any South or Central American accent the whole damn day.
My grammar is terrible. But 95% times, the other party understands. When listening, my Spanish vocablary is very vast and I understand almost anything except technical/Business Spanish.
I found following rules which has helped me a lot with my journey in Spanish. Its a game of SELF-CONFIDENCE!
1. Many times some Native speakers try to put me down by "acting" as if they dont understand what I am saying. And I have lived here long enough and spoken enough Spanish to know that they are "acting". yes, they act. Its just a game of dominance. Sometimes, I say "If your English is better than my Spanish, lets talk in English". Most of the times, that puts them under immense pressure.
2. I found the best way to get over Spanish proficiency is to speak, speak and speak. Speak really bad grammar, speak to any one but speak. Ideally if you are a male, a non English speaking local girl friend is the answer.
3. I took all kind of Spanish classes and bought 100's of books to learn Spanish. But it did not help me at all. Only speaking on the road with cab drivers, bus drivers, grocery store workers, passer-bys on the street, really helped me.
4. Most of the time, if you speak to really sophsiticated, well educated locals who have a command over their Native language, even your very mediocre Spanish will be understood by them. Challenge is - always trying to communicate with the uneducated local people who themselves dont have a proper grasp over their own damn language.
5. Reading Spanish newspapers or watching Spanish movies especially Argentine movies ( I speak and focus on Argentine Spanish and am really proud of it) really help.
6. Another issue I found, was trying to speak Spanish with other expats. Some of them speak very strange Spanish with EXTREME/MINDBLOWING confidence!! . Maybe they learnt it in some fisherman village in Republica Dominicana, on a trip there or something and then combined it some some Spanish they learnt as a extra language in some god-forsaken elementary school. End result is terrible. I faced those conversations, in my initial years and it really ruined my confidence with Spanish. ( just as some Spanish language new-learner would not really benefit trying to learn from me who is a flawed speaker) pro -tip - Speak Spanish with only native speakers. NOT with fellow expats.
Hope this helps.