I'm guessing...
First, set up a repeating trigger to check if the units are captives.
Each time the trigger fires, check the units' inventory to see whether or not they are carrying the desired stuff. I'm not sure whether or not the "hasWeapon" function will return TRUE for parent classes (i.e., if 'myUnit hasWeapon "Pistol"' will return TRUE if the unit is carrying an M9). If not, then perhaps you can do a check to make sure that {a} they are carrying a weapon at all, and {b} they are *not* carrying the type of weapon you don't want them to carry, such as satchel charges. I haven't specifically tested this but I think the following code should be (mostly) correct...
{
if(typeOf _x != "Put")
{
{ _x setCaptive false; } foreach units grpAllOfMyCaptiveUnits;
}
} foreach weapons myUnit;
...I'm sure there's a better way but I think that should, at least, get you started. Really, it's a shame you can't use the "isKindOf" function when checking the units' weapons but according to the BI wiki that doesn't work for weapons.