To display items on a brick in a different colour you need several different datablocks, or a hacky/broken method like I tried with Capture the Flag that occasionally displays the flag in your base the wrong colour until it's touched. This used to be possible and work fine, but then Badspot removed Item::setNodeColor and forced it to always update to the colorshift, which is stored clientside and hard to update if the server changes it.
To display weapons in your hand with a different colour you always need different datablocks.