Containers are indeed creating all instances of the object types listed as "contained" from the moment one instance of the list is created.
What container really help with is knowing that all the instances are "tied" together and it helps with the picking. You can't create container "list" at runtime.
If I understand correctly what you are trying to achieve, you want your "Main" object to be protected by two "Barriers" right ? And when one barrier is hit, you want the other barrier to be the only one left. Is that exactly what you are trying to achieve ?
I'm not sure then why you want to play with disabling collisions when you can modify the logic to make it so that hit barriers simply disappear.
See the attached capx (that is not using families, but still doing the thing I understood you wanted to have).
If this is not what you are looking for, consider attaching your own capx of your project as it stands and explaining what you are looking to achieve exactly.
Perhaps you are going the wrong way about the mechanic you believe you want in and there is another logic to apply to do what you want.