Are you running the batch file in control-m as the same user (owner) that runs successfully when done manually? If you do not select "Logon as: Local system account" in the agent service properties (Logon tab) it will always run as the entry in "Logon as: This account". It will not matter what you set the Owner to. It will always run as "This Account"
There are other settings that must be changed on the windows agent server and in control-m if you select "Logon as: Local system account".
Might be easier to grant permission to "This Account" id to run the batch file.