Below code works like a chart except that when I open the target file each line appears typed twice! I deleted the target file and checked many times. I'm not running it twice.
@echo off
setlocal enableDelayedExpansion
set "sourcelocation=\\whatever\Outbox\"
set targetlocation="G:\whatever\SharedData\\"
set "tmplocation=C:\tmpmerges\\"
set refdate=20151113
set versionID=000001
set entity=WTV
echo ...merging files
for %%f in (!tmplocation!*_WTVS_*!refdate!*_V!versionID!.txt) do type "%%f" >> !tmplocation!S_!entity!_WTVS_!refdate!_V!versionID!.txt
echo file merge completed
pause
Not really understanding why you are using delayed expansion for all your variables. But you can try this with your FOR command.