Well, those things are connected, you can make a kit that turns a solo-mage into a Sorcerer, but you cannot make a kit that is Sorcerer/Thief, unless you make and extra special slice from the Switch-Rogue kit so it's Thief->Sorcerer->Thief. As there is no such concept in the game that is required to have Sorcerer and Thief under the same banner(class), as the Sorcerer is it's own independent class, not a mage kit... just like the ShadowKeeper "tells you".
About the Switch-Rogue applied to other kits/classes. You only need two innates and a small bit of code to get the basics done. You will have to be careful with leveling up though since the XP gain is not linear (whereas between bard and rogue, it is linear).
1: Innate given to you when you are a thief. Sets a global to 2. Removes Innate 2.
2: Innate given to you when you are a sorcerer. Sets same global to 2. Removes Innate 1.
3: Spell to give innate 1 to your PC.
4: Spell to give innate 2 to your PC.
Code:
IF
OnCreation()
THEN
RESPONSE #100
SetGlobal("YOURGLOBAL","GLOBAL",1)
END
IF
Global("YOURGLOBAL","GLOBAL",2)
Kit(Player1,YOURTHIEFKITNAME)
THEN
RESPONSE #100
SetGlobal("YOURGLOBAL","GLOBAL",1)
ChangeClass(Player1,SORCERER)
ActionOverride(Player1, ApplySpellRES("YOURSPELL4",Player1))
END
IF
Global("YOURGLOBAL","GLOBAL",2)
Kit(Player1,SORCERER)
THEN
RESPONSE #100
SetGlobal("YOURGLOBAL","GLOBAL",1)
ChangeClass(Player1,THIEF)
ActionOverride(Player1, AddKit(YOURTHIEFKITNAME))
ActionOverride(Player1, ApplySpellRES("YOURSPELL3",Player1))
END
LOCALS instead of GLOBAL and Myself() instead of Player1 would probably work too.
It could requires some tampering, but you can always ask for more help in case I made a mistake.