Hi Bartimus, that ability issue sounds frustrating! I'm a newbie programmer myself so I don't know the answer yet! I'm going to copy your question into the Lua Help channel in Core's Discord community, because the Discord is very active and has a lot of great volunteer helpers in there. These forums are growing too, but at the moment Discord's got a bit more action. I can report back here if I get info, and you may also enjoy joining the Discord if you haven't already! Core Creators.
Update - I should probably have labeled this a comment rather than an answer...
Hello! Also, if you have an asset reference to the template, you don't need to do ability_template.id as the asset reference is the MUID itself, so you should just be able to do: World.SpawnAsset(ability_template)
Also, @BlueClairey, it looks like you did an answer instead of a comment.
I know it's been months, but I recently got the same error, so for anyone else:
It turned out that I had accidentally set the Custom Property to a Core Object Reference instead of an Asset Reference by dragging a template instance from the hierarchy instead of the template itself from the Project Content. I had to delete and recreate the Custom Property using the real template, and that cleared up the error for me.