If you need to support multiple levels of child lists (or sub-properties) nesting it is neccesary to replace the line:
pdc = ListBindingHelper.GetListItemProperties(listAccessors[0].PropertyType);
with
pdc = ListBindingHelper.GetListItemProperties(listAccessors[listAccessors.Length - 1].PropertyType);