1) Depending on the type, it is either overwritten or modified when you have xml for it.
For example, if you are attempting to modify a weapon, all you need to do is copy the GameItemType, keep the same internalname, and tweak what you want. It will save none of the old values - they are all overwritten and deleted.
But if you are changing, say, an ImprovementType, things work differently. Even if you use the same internalname, the old data that has been inserted into that ImprovementType will not be overwritten and deleted. Instead, you are modifying it.
GameItemTypes, SpellDefs and UnitTypes can be overwritten. Abilitybonuses, abilitybonusoption and ImprovementTypes and Raceconfigs cannot.
SpellDefs can be overwritten, BUT anything inside SpellResourceCost tags are NOT forgotten.
If you want to alter an existing abilitybonusoption, you have three choices.
1) Insert gamemodifiers to counter the old ones. For example, if a trait has +3 accuracy, insert a gamemodifier that gives -3 accuracy. This does not always work (for example you can't counter a gamemodifier that unlocks an ability).
2) Disable the old trait by making it unselectable at level-up / unit design. You do this by inserting a prereq that can never be fulfilled. This doesn't work for custom sov creation.
3) Make it a core mod instead of a normal mod.
It is possible that there is another file named CoreSpells.xml in your mod folder. I know I have one in the UnitStat background mod. Try renaming your Corespells.xml file.