In that set field step, Participants::BalanceDue > 0 is first evaluated and then the resulting value is used as search criteria.
At the instance this script step executes, your database is in find mode and thus the BalanceDue field is empty. Since "null" > 0 is false, your script then uses the number 0 are your search criteria.
To get the results you want, use this script step:
Set Field [Participants::BalanceDue ; ">0" ]
That did the trick! Thank you for explaining this to me.