This is an indication of a race condition or threading issue. My first thought is that you have some variables scoped to the package and the containers are using them but you are setting the variables inside the containers and hence any that run in parallel are stomping over others that also run in parallel. You should verify that all variables you are writing to inside each of your containers is scoped only to that container. A common place of failure when using script tasks is taking an existing HTTP connection that is configured at the package level and trying to use it in a script but modifying a property on the connection. Since the connection is shared it causes other tasks that may be using the same connection to collide.
You also need to look at the execution log of SSIS. It will first make a pass through to see what tasks to run followed by executing them. Enable logging and you'll see all this info so you can figure out where it is potentially failing. If all else fails add some extra logging into your code including any script tasks.