It looks to me like the Flash deserialising code can't deal when an array is sent back with other objects at the same level:
<someObject>
<grades>
<grades>
<grades>
<someOtherObject>
</someObject>
It doesn't work properly out that it's an array unless all sibling
"nodes" are of the same type:
<someObject>
<gradeWrapper>
<grades>
<grades>
<grades>
</gradeWrapper>
<someOtherObject>
</someObject>

