GADirector is an interpretive language .. so, in that instance (without seeing your Project XML) I would assume you're doing something like the following:
ForEach - MyData
SetValue: MyValue (MyData)
MyTask Parm1=Var1, Parm2=Var2, Parm3=MyValue
What happens is that in the Task Definition, the Task is being defined (interpreted) the first time through so, none of the subsequent iterations update.
To avoid this issue, create a "utility" project that calls your Task and pass the variables to that Utility Project to make the call. This way, every time the iteration goes through ... it will call the External Project and interpret based on the values being passed each time.
This should take care of your issue.