I'm no scripter but I think the problem is that the soldiers you create are joining the group that the player is in. (sf1) The player is the only member of that group before the createUnit script, so he becomes the leader.
What you need to do is create the soldiers in another group. Lets call it sf2. You will have to create this group in the Mission Editor for the createUnit command to work. Create a gamelogic and place it anywhere on the map. In its init field write
sf2 - group this; deleteVehicle this
Now, change the group in all your createUnit commands from sf1 to sf2. At the end add a line of code
[player] join sf2
Hope that helps.