These are some good devlogs. It seems like you've really got the technical aspects down-pat. I got the feeling you were more experienced when you mentioned that the save system was one of the first things you wanted to implement. I've heard it's an absolute nightmare to implement saving late in if you don't plan how to do it early. I too joined the Continue Your Game Jam back in January to try to keep myself focused, but I put that project on the backburner for a while and will need to refactor it before I pick it up again. I can empathize with you about simple projects ballooning in scope once you actually start designing them. It's discouraging, but that's something community support can help with.
There's some very good design tips in your devlogs too; I might use them. For my own ability system, I've just been using weighted randomizers. Each enemy has an array of structs with all their available moves and the likelihood of doing each one, then just get a random number between 1 and the length of the array, and then loop through the array and check if the random number is greater than the likelihood of the move, subtract the move likelihood from the random number if it isn't, and move to the next one. Your system sounds like it allows for a lot more tactical thought, but it requires an outside spreadsheet to adjust the likelihoods, so tradeoffs.
I'm looking forward to a playable demo release once you get more of the technical back end work and the player skills and such finished. This looks like it's going to be pretty fun.