Az onClientGUIClickeventet kezelő függvénynél az első paraméter (itt a source) az az, hogy melyik egérgombbal nyomták meg a gombot, nem egy játékos.
Gondolom azt akarod arréb rakni, aki megnomyta a gombot, tehát használj source helyett localPlayer-t vagy getLocalPlayer()-t.
A kliensoldali skinváltás meg szerintem nem lesz szinkornizálva, vagyis a többi játékos nem fogja úgy látni a skint, csak az, aki a gombot megnyomta. De ez nem 100%, ki kell próbálni.
(setPedSkinhelyett pedig inkább setElementModel-t érdemes használni)