The message is pretty specific: you cannot have two columns in teh smae table with the same name:
SELECT
BM.Batch_id ,
...
TPP.Batch_id ,
...
INTO ##TempProductionData
You need to use AS on at least one of the columns so SQL can tell which you are referring to.