I'll cut right to the chase with this:
I believe it's impossible to add new things to certain areas of existing script.
For instance. I have a Guardian Stone mod that greatly enhances the effects of the stones throughout the world. However, I've found that since these stones already have existing references the only way to change them is by editing. Sure, you can make new magic effects and reference them to the Guardian Stone's alias... but it's impossible to create a NEW reference that the guardian stone will actually recognize. Why is this?
Scripts. The scripts are made in such a way that 99% of the meat of them is hidden within the game engine itself... making a good portion of the game content "un-touchable", if you will.
Examples:
Load up the script manager. Open powerShrineScript. Look at the following sections:
; //list of the effects
SPELL PROPERTY pDoomApprenticeAbility AUTO
SPELL PROPERTY pdoomApprenticeNegativeAbility AUTO
SPELL PROPERTY pDoomAtronachAbility AUTO
SPELL PROPERTY pDoomLadyAbility AUTO
SPELL PROPERTY pDoomLordAbility AUTO
SPELL PROPERTY pDoomLoverAbility AUTO
SPELL PROPERTY pDoomMageAbility AUTO
SPELL PROPERTY pDoomRitualAbility AUTO
SPELL PROPERTY pDoomSerpentAbility AUTO
SPELL PROPERTY pDoomShadowAbility AUTO
SPELL PROPERTY pDoomSteedAbility AUTO
SPELL PROPERTY pDoomThiefAbility AUTO
SPELL PROPERTY pDoomTowerAbility AUTO
SPELL PROPERTY pDoomWarriorAbility AUTO
SPELL PROPERTY pDoomApprenticeAbility AUTO
SPELL PROPERTY pdoomApprenticeNegativeAbility AUTO
SPELL PROPERTY pDoomAtronachAbility AUTO
SPELL PROPERTY pDoomLadyAbility AUTO
SPELL PROPERTY pDoomLordAbility AUTO
SPELL PROPERTY pDoomLoverAbility AUTO
SPELL PROPERTY pDoomMageAbility AUTO
SPELL PROPERTY pDoomRitualAbility AUTO
SPELL PROPERTY pDoomSerpentAbility AUTO
SPELL PROPERTY pDoomShadowAbility AUTO
SPELL PROPERTY pDoomSteedAbility AUTO
SPELL PROPERTY pDoomThiefAbility AUTO
SPELL PROPERTY pDoomTowerAbility AUTO
SPELL PROPERTY pDoomWarriorAbility AUTO
; //FUNCTION: addSign
; //
; // adds the sign of the stone to the player
FUNCTION addSign()
game.AddAchievement(29)
IF(bApprentice)
game.getPlayer().addSpell(pDoomApprenticeAbility)
game.getPlayer().addSpell(pdoomApprenticeNegativeAbility)
ELSEIF(bAtronach)
game.getPlayer().addSpell(pDoomAtronachAbility)
ELSEIF(bLady)
game.getPlayer().addSpell(pDoomLadyAbility)
ELSEIF(bLord)
game.getPlayer().addSpell(pDoomLordAbility)
ELSeIF(bLover)
game.getPlayer().removeSpell(pRested)
game.getPlayer().removeSpell(pWellRested)
game.getPlayer().removeSpell(pMarriageRested)
game.getPlayer().addSpell(pDoomLoverAbility)
ELSEIF(bMage)
game.getPlayer().addSpell(pDoomMageAbility)
ELSEIF(bRitual)
game.getPlayer().addSpell(pDoomRitualAbility)
game.getPlayer().addPerk(pdoomRitualPerk)
ELSEIF(bSerpent)
game.getPlayer().addSpell(pDoomSerpentAbility)
ELSEIF(bShadow)
game.getPlayer().addSpell(pDoomShadowAbility)
ELSEIF(bSteed)
game.getPlayer().addSpell(pDoomSteedAbility)
ELSEIF(bThief)
game.getPlayer().addSpell(pDoomThiefAbility)
ELSEIF(bTower)
game.getPlayer().addSpell(pDoomTowerAbility)
ELSEIF(bWarrior)
game.getPlayer().addSpell(pDoomWarriorAbility)
ENDIF
endFUNCTION
; //
; // adds the sign of the stone to the player
FUNCTION addSign()
game.AddAchievement(29)
IF(bApprentice)
game.getPlayer().addSpell(pDoomApprenticeAbility)
game.getPlayer().addSpell(pdoomApprenticeNegativeAbility)
ELSEIF(bAtronach)
game.getPlayer().addSpell(pDoomAtronachAbility)
ELSEIF(bLady)
game.getPlayer().addSpell(pDoomLadyAbility)
ELSEIF(bLord)
game.getPlayer().addSpell(pDoomLordAbility)
ELSeIF(bLover)
game.getPlayer().removeSpell(pRested)
game.getPlayer().removeSpell(pWellRested)
game.getPlayer().removeSpell(pMarriageRested)
game.getPlayer().addSpell(pDoomLoverAbility)
ELSEIF(bMage)
game.getPlayer().addSpell(pDoomMageAbility)
ELSEIF(bRitual)
game.getPlayer().addSpell(pDoomRitualAbility)
game.getPlayer().addPerk(pdoomRitualPerk)
ELSEIF(bSerpent)
game.getPlayer().addSpell(pDoomSerpentAbility)
ELSEIF(bShadow)
game.getPlayer().addSpell(pDoomShadowAbility)
ELSEIF(bSteed)
game.getPlayer().addSpell(pDoomSteedAbility)
ELSEIF(bThief)
game.getPlayer().addSpell(pDoomThiefAbility)
ELSEIF(bTower)
game.getPlayer().addSpell(pDoomTowerAbility)
ELSEIF(bWarrior)
game.getPlayer().addSpell(pDoomWarriorAbility)
ENDIF
endFUNCTION
Notice:
The variables for "pDoomStoneAbility" are predefined by the game engine. There is absolutely NO reference to these variables ANYWHERE in the creation kit.
My point with all this is that based on my experience with editing the Magic Effects, there is simply no way to add a NEW / UNIQUE ability to the stones. If one stone has a "+50 health", it can have any sort of ability related to enchanting type effects. If another stone gives you a "Power" once a day, it can't have any of those enchanting type effects BECAUSE they are of a different effect type (constant / fire and forget / ect)...
What does this have to do with scripts?
You can't edit the script to add new effects... you can try adding a new reference and add a line of (game.getPlayer().addSpell(yourNewSpell))... but the problem is, the game engine simply doesn't know what your new spell is.
BECAUSE WE DON'T HAVE ACCESS TO IT.
If I'm missing something, PLEASE let me know... because the Wiki is extremely lacking in proper documentation of the scripting language itself and instead just gives a basic programming 101 on irrelevant stuff like how functions work and what a loop is... seriously, I'm frustrated.

thanks guys