Look up Family Type parameters in the Revit Help. Basically have all of your nested ball valve families you want to swap-around be of the same family category. Create a new parameter called something like "Ball Valve" and declare it to be Discipline: Common and Type of Parmaeter: (last choice on the list) then select the category from the pop-up dialog that matches the Ball Valve families.
NOTE: All ball valve families must have the same named/typed reference planes in them for you to align and lock them to in the host family. In other words, however one is "anchored" in the host family must exist and be identical in all families to be exchanged for each other.
Place an instance of one of the ball valves in the host family. Click on the instance and "Label" it with the combo box in the Options Bar as you would label a dimension with a parameter.
When you go to the Family Types dialog and select the new parameter, a combo box will appear in the Value column and show you all the nested families of the same category that are available. Changing the combo box selection will delete the instance that was there, create an instance of the new nested family chosen, and place it the same way as the original instance.
There are issues. For example, you can't query in a formula which Family Type is currently selected. But if they are type-specific, you shouldn't need to. You can also set the Family Type parameter with a type catalog, which is pretty cool.
But it sounds like this is the tool you're after.