When you give someone xSpellCast you also have to work with this field on the base race:
rSpCastLev (level of the caster)
and tags like:
sClass.cHelpWiz (for granting wizard spells cHelpClr, CHelpDrd, cHelpPal, cHelpWlk, cHelpSor)
Helper.HalfCaster (for 1/2 spell slots - FullCaster, HalfCaster, 3rdCaster, WarlocCast otherwise)
or ClsAllowSp.spellthingid (like ClsAllowSp.spGuidance for allowing Guidance to the spell list if you want a Warlock basically but he needs Guidance for some reason.
and create a linkage for casterattr which I think can be done by assigning the a tag like
SplAttr.aInt
and if it's a warlock, you have to bootstrap the warlock Slot holder and give its MaxAllow field the number of slots.
Easy.
However, spells won't show up because you still have to manually add spells in the portfolio. Anything bootstrapped is normally considered a racial spell.
If you're trying to add innate spells, you can use xInnatSpel but you still have to bootstrap each of your spells and make sure your tags are right:
Usage. (Day,LongRest,ShortRest,AtWill)
Helper.RaceSpell
and tracking field
trkMax (some number of times)
and
you still have to link the casting attribute.
For bootstrapped spells, if you're trying to delay showing it until a certain level, look at how the spells are bootstrapped for Drow Magic for the conditional logic (Count:Classes > 3 and the like).