Most of the stuff that was bothering me this week is taken care of, though some of the stuff that's left is a bit of a doozy.
I was doing other stuff to unwind again, but I just had a breakthrough on SCA². It looks like most of the globals can be replaced by multiple returns. Which means I wouldn't need the temporary variables to hold the values, because I can just pick different names, or not assign to names in the first place. I think I'm making much better progress now that I know what I can basically ignore.
I'm currently sticking to the higher-level side of this, which means figuring out the CatSub function. I guess it needs some way to refer to the categories. Oh well, I'll try to figure this out tomorrow.