The only thing you need to do to the model for this, is give the model nodes that you want to be colorable. The rest is done via scripting.
You'll need to package the function when the player's avatar updates(there's two, one for color, one for which nodes are hidden, but I forget them right now) and set the player's nodes accordingly. Use the variables on the client like %client.RHandColor and %client.hat to change nodes and colors according to what the player has. You can dump the client to see all of the variables.