It's the (missing) quote marks which make the difference.
Consider these two option fields:
<option value=Duck, Donald>Duck, Donald</option>
<option value="Duck, Donald">Duck, Donald</option>
Can you see why the first one is only going to send "Duck," as the value?
Guess which form you're creating with your code?
agentNames = agentNames & "<option value=""" &theagent& """>" &theagent& "</option>"
The inline "" causes a single double quote mark to be included in the genrated string, it's """ in both cases in the example I gave because the inline quote we needed to add is adjacent to a quote mark denoting the end or the beginning of a string. Basically remember that anytime you need the output to contain a doublequote mark just double them up.
Make it your habit to always include quote marks for your HTML properties, and you'll not run into this kind of a problem again.