that is because the brain has 2 different regions for language processing, one for processing language when listening and one for forming speech. Because of this, it's possible to understand a language without being able to speak it. It's also possible, though much less common to speak a language without being able to understand it.
The only way to get better is to keep practicing at it.
Spoiler!
If you are over age 18, you may want to look into joining a group called toastmasters. The experience is offered around the world and many non-english speakers use the experience to practice their spoken english skills. See if their is a local group in your area and visit the group to see if you find the experience worthwhile.