It seems like Element.PartialDelete (Partial1, Partial2, Point1, Point2, Selector, ViewSpecifier) is using viewIndex + 1 instead of the passed in viewIndex. Probably a mixup between 1 based and 0 based indexing when calling the underlining mdl code.
If I pass in the view object directly, it seems to be reading that views index and confusing that as well. I cannot pass viewIndex - 1 as that will cause a COM error on view 1.