The gap between understanding and speaking is normal. Here's the practice that closes it, starting today, with nobody else in the room.
Quick Answer: Understanding a language and speaking it draw on different skills, so a gap between them is normal rather than a sign you've done something wrong. Recognizing a word is easier than retrieving it under time pressure. The fix is production practice at low stakes: retell something you've just read, out loud, in your own words, daily.