1) Otherwise, you can use a Select Ability node in the schematic to get the ability you want.
2) Well ...
Local depends on where it's used, e.g. in a schematic, the local variables are only 'alive' while the schematic runs (also shared in some cases, e.g. schematics animating a battle action all share their local variables, as well as formulas called by the schematic or ability/item).
Setups for ability/item variables and similar things have the individual instance's variables as Local variables, etc.
So, local is context-dependent :)
Global - correct.
Object - correct, with the addition that you can also access them without game objects via an Object ID. Also, all game objects using the same Object ID share their variables.
Basically, using Object IDs allows you to create sub-global variables if you want :)
Selected Data is a bit more complex. Generally, you can store any kind of thing into selected data, e.g. a combatant, an ability and a game object. Using the Selected Data variable origin will try to get variables from whatever is stored in the selected data.
Yes, generally only global/object variables are saved, though local variables e.g. in context of ability/item/equipment variables can also be saved. Local variables of schematics or formulas are not saved, though.