Positioned Model Issue

I’ve created a pointshop item (a guitar from TF2 that you can carry around on your back).


ITEM.Name = 'Ol West Pal'
ITEM.Price = 350
ITEM.Model = 'models/guitar/guitar.mdl'
ITEM.Bone = 'ValveBiped.Bip01_Spine2'
ITEM.AllowedUserGroups = { "admin", "superadmin", "donator", "donatorplus" }

function ITEM:OnEquip(ply, modifications)
	ply:PS_AddClientsideModel(self.ID)
end

function ITEM:OnHolster(ply)
	ply:PS_RemoveClientsideModel(self.ID)
end

function ITEM:ModifyClientsideModel(ply, model, pos, ang)
	model:SetModelScale(1, 0)
	pos = pos + (ang:Right() * 2.9) + (ang:Up() * 0) + (ang:Forward() * -1)
			ang:RotateAroundAxis(ang:Forward(), 270)
			ang:RotateAroundAxis(ang:Right(), 180)
			ang:RotateAroundAxis(ang:Up(), -20)
			
	return model, pos, ang
end

The guitar model works flawlessly in singeplayer, but once it gets mounted into a MP server, it starts flickering and spazzing out on the player’s back as you move around.
Is there anything I can change or add to the code so it doesn’t happen in MP? Or maybe does it have something to do with the model I’m using?