All right, progress.
To get the custom class to show up in the Toolkit, the related 2DA files have to go in the base NW install directory override folder. Once there, it worked, and I was able to set the class on my companion.
The deity weapon feats are granted on the appropriate levels as I have them set in the 2DA. The trick there is making sure the companion has "Weapon of Choice (weapon-that-matches-deity)" as a granted Feat on their blueprint. Once that happens, it works automatically.
With some tweaking, The Fred's script (and XML) to restrict companion multiclassing allows me to make sure this companion is the only companion that has access to this custom class.
I Have One Open Issue
There seems to be some problem with bonus feats. What I've done in my classes.2da file is cloned the Paladin class, and then added the diety weapon feats, and a couple other automatically granted feats at level 1.
Then I created a bonus feats 2da for this class, and granted bonus feats every X levels. And then I created the associated class_feats.2da file.
My intention was to allow the class to select one of the Paladin's Divine feats as a bonus feat at levels x, y and z. So I added them to this class's feats.2da. I've tried setting the List value to all possible values. I tried 1, 2 and even 3, specifying the exact level to grant the feat, and still it doesn't work.
And it's really weird; the bonus feat dialog automatically opens, but on the wrong levels, and it's empty. No feats available, even though I've specified them in the custom class's 2da file.
I had bonus feats specified at 3,6,9,12, and the bonus feats dialog instead opens at 7 and 16. I checked the default paladin bonus feats table to see if it was using those values, but Paladins don't get bonus feats at all (until epic levels).
So there seems to be a disconnect between the bonus feats table I've created for this custom class, and the way the game uses it. And there seems to be a real disconnect between the bonus feats I specify in the custom classes's 2da file, and what shows up (which is nothing).
So close...