So, this is a weird one. When use the "read" command, the audio of the text being read gets sent to the onboard speakers, even if I have my headphones on and I hear every other sound through the headphones.
If you open Speech Recognition in the Windows Control Panel, then click "Text to speech" in the sidebar, you'll be able to check your audio output settings for this feature. Under "Advanced", it's possible to set a specific device, so that may be overriding the headphones. I'd take a look at all of this, and check where the audio is outputting when you click the Preview Voice button. Scrivener has no settings for this itself.
(I'm assuming we're talking about the Edit > Speech > Start Speaking option, or the microphone "Start or stop speaking the text" toolbar button--please correct me if I'm misunderstanding.)
It works now. I went into settings as you said and found that text to speech (for some reason) was set to a specific output device. I changed it to default and it now outputs to headphones, when I have them on, or to speaker if I unplug the headphones. I don't why it didn't have this problem with other software, but now it works.