It's not very advanced, I'm sure you can do it:
1) Name your hummers: hummer1, hummer2 and hummer3. Place an eventhandler in the Hummers init field:
this addEventHandler ["hit",{TAKINGHITS=true}]
2) Name all the individual units in the hummers. For example: h1, h2, h3, et cetera.
3) In the init fields of h1, h2, h3 et cetera you write: h1 assignAsCargo hummer1, h2 assignAsCargo hummer1, and so on...
4) Place h1, h2, h3 et cetera in the hummers using the moveinCargo command.
5) Make a trigger. Condition: TAKINGHITS (the variable you get from the eventhandler in number 1 above)
6) In the activation field of the same trigger you write: [h1,h2,h3] orderGetin false; hummer1 stop; hummer2 stop; hummer3 stop
When the Hummers registers damage (from bullets or grenades or whatever) the soldiers will emerge from the vehicles. If you set them on a guard waypoint before you move them into the hummers they will still be in guard mode when they disembark.
When you think they've done enough "supporting the trucks" you can just make them getin again using [h1,h2,h3] orderGetin true.
This example assumes that your 3 man squads is just riding in the hummers, not driving them.
Hope that'll help you, good luck