Adding a humanoid to the ViewModel, and then having a LocalScript which sets the arms colors to the players arm colors, and then if they have a shirt, clones it over.
local Player = game:GetService("Players").LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local ViewModel = viewmodel -- Just the directory. You set this.
if Character:FindFirstChildOfClass("Shirt") then
s = Character:FindFirstChildOfClass("Shirt"):Clone()
s.Parent = ViewModel
end
ViewModel.LeftArm.Color = Character["Body Colors"].LeftArmColor3
ViewModel.RightArm.Color = Character["Body Colors"].RightArmColor3