There is a function changeAIScript which does work for scripts compiled to bcs file. The two parameters are the script name and one of 5 different priorities (DEFAULT, GENERAL, CLASS, RACE, OVERRIDE). I used changeAIScript on bs files, and the script was changed but didn't start until I manually checked what script that was active. I tested all priorities, and CLASS seems to be the one that at least changed the script (but it wasn't active).
If I instead used changeAIScript with .bcs files and put them in the override folder, I would give it the priority DEFAULT which is the lowest, and that works, but that also means that my npc's won't be using their normal DEFAULT script anymore, and my custom script will run on two threads - one script from the bs file and the other from from the bcs file, making the script messy. For example I would have to make checks that the other bcs file is not active if I did anything in my .bs file, and I would need to switch scripts depending on NPC back to their normal script if they were not in the party.
So is there any way to change my custom AI script compiled to file extension .bs?