Your script is running at 'User Post Attributes'. Don't use any of the "user" timing phases. Change to "Post Attributes". "User" timing phases are going to be deprecated in a future release...
Next step to help yourself use "debug" statements to see what the script is doing.
Code:
debug "Running"
~ -1 Skill Check Penalty at 10th level
if (hero.tagcount[Hero.HitDice] >= 10) then
foreach pick in hero from BaseSkill
eachpick.field[Penalty].value -= 1
nexteach
endif
~ -1 Spell save DC at 6th level
debug "Hit Dice Count: " & hero.tagcount[Hero.HitDice]
if (hero.tagcount[Hero.HitDice] >= 6) then
debug "In IF"
hero.child[cHelpWiz].field[cSplSaveDC].value -= 1
debug "Wiz Save DC:" & hero.child[cHelpWiz].field[cSplSaveDC].value
endif
Then go to "
Develop->Floating Info Windows->Show Debug Output". Then you can see the output of the "debug" info in the window. That should provide you with good info to see "what" is going on.