I'm no scripting genius, but try this one, not tested.
I hope I understood what you were trying to do.
_unit = _this select 0
_side = _this select 1
_sideset = 0
_rank1 = 0
_rank2 = 0
#loop1
~1
?(score _unit >= 600): goto "loop2"
?(score _unit >= 1200): goto "loop3"
?(score _unit >= 2000): goto "sgt"
? _sideset = 1 : goto "loop1"
?(_side == West): goto "setGreen"
?(_side == East): goto "setRed"
?(_side == Resistance): goto "setBlue"
#setGreen
_unit setobjecttexture [0, "Green.jpg"]
_sideset = 1
goto "loop1"
#setRed
_unit setobjecttexture [0, "Red.jpg"]
_sideset = 1
goto "loop1"
#setBlue
_unit setobjecttexture [0, "Blue.jpg"]
_sideset = 1
goto "loop1"
#loop2
~1
hint "loop 2 reached"
?(score _unit >= 1200): goto "loop3"
?(score _unit >= 2000): gtot "sgt"
? _rank1 = 1 : goto "loop2"
?(_side == West): goto "Green"
?(_side == East): goto "Red"
?(_side == Resistance): goto "Blue"
#Green
_unit setobjecttexture [0, "Green_pvt.jpg"]
_rank1 = 1
goto "loop2"
#Red
_unit setobjecttexture [0, "Red_pvt.jpg"]
_rank1 = 1
goto "loop2"
#Blue
_unit setobjecttexture [0, "Blue_pvt.jpg"]
_rank1 = 1
goto "loop2"
#loop3
~1
hint "loop 3 reached"
?(score _unit >= 2000): goto "sgt"
? _rank2 = 1 : goto "loop3"
?(_side == West): goto "Green1"
?(_side == East): goto "Red1"
?(_side == Resistance): goto "Blue1"
#Green1
_unit setobjecttexture [0, "Green_cor.jpg"]
_rank2 = 1
goto "loop3"
#Red1
_unit setobjecttexture [0, "Red_cor.jpg"]
_rank2 = 1
goto "loop3"
#Blue1
_unit setobjecttexture [0, "Blue_cor.jpg"]
_rank2 = 1
goto "loop3"
#sgt
?(_side == West): goto "Green2"
?(_side == East): goto "Red2"
?(_side == Resistance): goto "Blue2"
#Green2
_unit setobjecttexture [0, "Green_sgt.jpg"]
exit
#Red2
_unit setobjecttexture [0, "Red_sgt.jpg"]
exit
#Blue2
_unit setobjecttexture [0, "Blue_sgt.jpg"]
exit
Planck