When RedUnit collides with another RedUnit, both of them become isPaused. So event 16 processes two instances of them. And because the engine is so smart, it compares each Marker UnitID with a different RedUnit instance, alternating between them (I assume). As a result, some of the markers remain unpicked.
Add "For each RedUnit" to event #16. You might need to do the same in some other similar events.