I put the first few lines of your BAT file into a BAT file and executed it. The quotes do appear in the filename.vbs file. I have Windows 8.
My BAT file looks like this:
SET /p var=What To Say:
echo speechtext=("%var%") > filename.vbs
echo set objspeech=createobject("SAPI.spvoice") >> filename.vbs
echo objspeech.speak speechtext >> filename.vbs
The filename.vbs looks like this:
speechtext=("Hello World")
set objspeech=createobject("SAPI.spvoice")
objspeech.speak speechtext
and when I execute it, I hear the "Hello World"