Can you please email me your codes so I can run and take a look?
One possibility, your FnsToEvaluate.riskyshare will include people who have zero savings. Maybe do riskyshare conditional on savings>0 (you can use simoptions.conditionalrestriction)
[you could do the same by setting up FnsToEvaluate.riskyshare as riskyshare*(savings>0) and FnsToEvaluate.positivesavings as (savings>0), then just do the riskyshare moment divided by the positivesavings moment (only works if you are only interested in mean, conditionalrestriction gives all the other stats too)]