Да, строчка
$this->setProperty('related', $secondOp->id);
лишняя (related проставит сам MODX, когда будет сохранять основной объект, на основе связи).
И понял, что без afterSave не обойтись. У меня оба объекта равнозначны и должны быть связаны между собой. То есть
$first = $this->object; $second = $this->object->Related; $second->addOne($this->object);
в итоге это не одна связь, а две. Поэтому еще одно сохранение делать придется в любом случае)