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