So I was actually rummaging around in the dialogue files before, trying to find how the watcher abilities are given and I did find that the target for that script was the Player_Debug ("b1a8e901-0000-0000-0000-000000000000"). And I did try using that in a ModScripHook "if player is in the scene -> give ability" script, but it didn't work so I abandoned that.
But after SiliconMage mentioned that again, I went back to it. Long story short, I was using it on new characters and had it set up as "SucceedOnlyOnce -> true", and that was the problem. It was firing the script, failing to give the ability and then turning off the script.
I'm now using a ModScripHook "check if player has ability, if not give it to them" script. I still can't get past character creation, but if I use it on a character already made, then I can get it to work nine times out of ten (it will still sometimes misfire!??). If I use "SucceedOnlyOnce -> false" then it will always work, but that is generally bad practice (it keeps checking every time you enter a new scene).
Anyhow, thanks to the both of you I finally have a reliable way to deliver my abilities/talents.