Well, much of what you're looking to do will be rather complicated for a beginner. Offering characters with interactive customization options is very possible to do in Blender, usually through exposing a custom UI for that character with Python scripting which will automate some of the changes for the user "under the hood" so to speak. I've seen many custom characters that had such options. There would be a panel accessible in the UI which allowed a user to change the clothing, hair, accessories, or whatever they wanted on that character through a custom interface using Python coding behind the scenes. The easiest way to change the color of things on a model is just to provide access to the Base Color of the material shader. Using certain node structures and maps, you can even allow for changing skin color or skin tones on any provided albedo map just by changing the Base Color. Most users would know how to do this if they are familiar with shader nodes themselves, but if you want to offer it to almost anyone at any skill level, you'll have to learn some Python scripting and UI coding to create a customization panel for the character you're offering. Otherwise, you can just give them hints on how to do it manually by manipulating the node tree of the character shader system themselves.