The script runs perfectly fine when manually run and perfectly fine when 'user is logged on'
The task scheduler does a user impersonation and not a full desktop logon when you set it to "Run whether user is logged in or not". Your network drives are probably not getting mapped. The easiest solution to the drive problem is to use the UNC path to the server (\\ServerName\ShareName\FolderName) instead of the drive letter.
Add a "dir" statement to the bat file to get a directory list of files. Verify that you can see the files. Echo the environment variables too.
I like to capture stdout and stderr at the overall task level. Set the task to execute cmd.exe and in the arguments field set it like this. Put this log file on the C drive, not a network drive.
/c C:\Scripts\MyScript.bat 1>"C:\Scripts\Logs\MyScript.log" 2>&1
That will capture the "dir" and your "echo" output.