В случае использования иерархии, DataEnvironment1.Connection1.rsCommands возвращает Shape рекордсет, это значит, что подмножество записей Member (зависимое от текущей строки в Commands) в виде рекордсета доступно как значение поля:
? typename(DataEnvironment1.Connection1.rsCommands.Fields('Members').Value)
Recordset
По второму вопросу конкретно подсказать не могу - не пользовался встроенными функциями редактирования DataGrid - муторно делать нормальную проверку корректности введенных данных. Проверьте тип получаемого рекордсета, позволяет ли он редактирование. Не поможет ли явное переоткрытие рекордсета?:
call DataEnvironment1.Connection1.rsCommands.Close()
call DataEnvironment1.Connection1.Commands()