Sam,
It sounds like you might be a bit too focused on being the expert, being right and proving yourself. Asking questions is your job - there is no such thing as 'right' or 'wrong' questions.
Your development team members are experts, and you don't have to compete with that. If they tell you information that you missed or don't know, then they're just giving you expertise that you need - and that's a good thing! You can certainly go back to the functional spec to see what you missed and why you missed, to improve yourself. But you're not expected to be a subject matter expert yourself - as a BA, your job is to get the experts to tell you what they know. Sounds like you're doing that. Welcome it, and be glad they're willing to share their expertise with you.
For project team meetings, do your best to inform yourself ahead of time. But in the meeting, don't hesitate to speak up or ask questions. If you've missed anything, the team will tell you - then you will leave the meeting more informed than when you went in. Meetings are not always the best place to get detailed explanations - unless of course, that is the original purpose of the meeting. So if topics come up that you don't fully understand, ask the person if they are able to meet separately with you and provide more detail. Most people are willing to share their knowledge, as long as you don't overburden them with these requests. It doesn't matter if some people say 'no' to these requests; even if just a few people agree, you will still gain a lot of knowledge this way.
Remember that your job is to learn from the experts, not to be an expert yourself - then you will be more comfortable asking the questions that you need to ask, and participating on the project team as a valued and productive member.
Sandy