Yep, it sounds like the "appropriate headers" may not actually be appropriate
If you aren't already doing so, you could use the BASSenc add-on to handle the file writing. For example, you could do something like this...
BASS_Encode_Start(mix, "output.wav", BASS_ENCODE_PCM|BASS_ENCODE_AUTOFREE, 0, 0); // set a WAV writer on the mixer
Please see the BASS_Encode_Start documentation for details. Also see the BASS_Mixer_StreamCreate and BASS_Mixer_StreamAddChannel documentation for a list of valid flags, as BASS_SAMPLE_MONO and BASS_ATTRIB_SRC aren't valid there.