I'm a little hesitant to add a way to disable players' ability to change their skin; it's meant to be a purely cosmetic change with no effects on gameplay (and thus entirely up to individual players' preference.)
I was intending/expecting that if a mod wants to force the player to use a different character entity for gameplay reasons, they'd be managing that themselves through Factorio's usual API, potentially making a prototype copy of all characters to change their stats independently of appearance (like Bob's Character Classes), but I've realized that this is a lot of work that I've already mostly implemented.
I think I understand your usecase, and I would maybe be willing to add a remote interface for (forced) character swapping; it would certainly be better & easier for mod compatibility since I already handle all that. However, if the different characters were skins, then the player could potentially select one of them even when you're not forcing that skin, which might be unwanted.
Alternatively (and I think this might be better than forcing certain skins), I could add a separate data-stage feature to allow different characters with different prototype stats to be defined (and later selected) by mods independently of the player's current skin. So a mod could add a "fast" class with different movement speed, tell Skins Factored to activate it, and then I'd switch them to the correct generated prototype depending on their skin.
A couple questions to make sure I understand your mod though:
What exactly is the difference between the different character entities in your mod? Is it just stuff you do during runtime scripting, or do you edit the prototypes of the different skins to change their movement speed/health/hitbox/etc? Importantly, can the player choose a different character at any random time during gameplay?