I think I found a work around for it.
Code:
<!-- If we're a character advancement, lock us into the first available slot on the advances array -->
<eval index="8" phase="Final" priority="8000" name="Assign To Table"><![CDATA[
doneif (tagis[AdvanceCat.Advancement] = 0)
var i as number
for i=0 to 23
if (empty(herofield[acXPAdvTier].arraytext[i]) <> 0) then
herofield[acXPAdvTier].arraytext[i] = field[name].text
field[advCount].value = i
done
endif
next
]]></eval>
<!-- If we're an advancement that uses a tier slot, we have a text to display -->
<eval index="9" phase="Render" priority="8500" name="Assign Advance Tier Count"><![CDATA[
if (tagis[AdvanceCat.Advancement] <> 0) then
field[advCount].value += 1
field[advTier].value = field[advCount].value
endif
]]></eval>
<!-- If we're an advancement that uses a tier slot, we have a text to display -->
<eval index="10" phase="Render" priority="10000" name="Assign Tier Advance"><![CDATA[
if (tagis[AdvanceCat.Advancement] <> 0) then
if (tagis[Advance.LongTerm] <> 0) then
field[advTierTxt].text &= "Tier " & field[advTier].value
endif
endif
]]></eval>
Doing it this way the numbers are coming out correctly, though I had to force feed them into an array... consequently I think I figured out how skills get modifiers in arrays with this bit of coding though...