The code seems to make sense, but you may have something behind the scenes going on that you may not realize?
Are you using a LocalScript? If you are, you may have to use RemoteEvents because a LocalScript runs on the client, and ROBLOX doesn’t allow the client to directly make changes to the server.
Just do part.Color = workspace.ColorValue.Color. You’re overcomplicating it by trying to put a Color3 inside the Color3 constructor.
Edit:
This is redundant. You’re just doing part.Color = workspace.ColorValue.Color in a more complicated (and less efficient) way. This is the equivalent to x = tonumber(5) or part.Color = Color3.new(Color3.new(5).R, Color3.new(5).G, Color3.new(5).B). You really shouldn’t be doing this.