[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied

This error rarely is a permissions issue:

I've actually never seen it be a permissions error. What I've seen it always be is not able to reach the SQL Server, meaning it never even attempted to login as it couldn't reach it.

What I would recommend is running a trace on the production server and the QA server, looking for login events. I suspect you've got a variable or connection somewhere in that package that is causing the error. I suspect your prod server is firewalled off and can't see the server that it is attempting to connect to. It might be a parameterized connection via a variable or even the default value that you are overriding.