A trigger list incorporates all units regardless of locality, so I don't think that is your issue. There are, however, may reasons why triggers could count differently on different computers or in different situations.
Triggers are only updated, and their conditions checked, every 0.5 seconds. I'm pretty sure that this timing is not exactly in sync on each machine, and that, since objects can be in different places on different machines (the difference caused by desync) it is reasonable to assume that sometimes different machines have different things inside their triggers at the same time. Generally, this isn't a massive problem, but if a trigger causes a critical event (such as ending the mission) it can be best to do this on the server and broadcast the results.
A possible related issue is that a manned vehicle only counts one in your example, so if 3 soldiers get into a humvee, they will only count one. In case there are vehicles in your mission, you need to count the total people in each crew of each vehicle:
total = 0; { total = total + { alive _x } count (crew _x) } forEach goodguys; { total = total - { alive _x } count (crew _x) } forEach badguys; total > 0