Effectively, video suggests that:
first time, no selectionIndexPath : hence indexpath set at top
second time, selection is first node, hence, indexpath set to 1
and after, insertObject fails, so it edits the current selection
Could you test theIndexPath, just before calling
[self insertObject:theTreeNode atArrangedObjectIndexPath:theIndexPath];
Could you also print the nodes count before and after insert ?
Doc for insertObject says:
Set the clearsFilterPredicateOnInsertion to YES to allow insertion.
Could you try ?
And to make sure you're on similar conditions, could you ask her to upgrade to 11.5.2 ?