Hmm, I used the Debug trick you used me to double-check. Simplified code a bit to tes.
Code:
if (tagis[Equipped.Equipped] <> 0) then
var swim as number
swim = #trait[trPace]
debug #trait[trPace]
hero.child[trPace].field[trtSpecial].value = swim
endif
The Debug shows the value for #trait[trPace] is 0. So it that code doesn't pull any value. Any other ideas?