Вот теперь код более чистый. Правда рудимент видим

Вот теперь код более чистый. Правда рудимент видимо остался — $this->setProperty('related', $secondOp->id); Объекта $secondOp нет у тебя в том методе.

По идее должно работать. Но почему-то не хочет…

У тебя связь неправильно прописана (если я не ошибаюсь, что эта связь прописана для мапы $this->object). У тебя в ней сказано, что owner — foreign, то есть будет использоваться значение из внешнего объекта (из его колонки id (ключ foreign)). То есть это описание для изменения локальной колонки $this->object->related, которая примет значение от $this->object->Related->id, а не наоборот. Если ты хочешь менять колонку внешнего объекта, то мапа должна быть такой:

// ...
    'Related' =>
    array (
      'class' => 'Operation',
      'local' => 'id',
      'foreign' => 'related',
      'cardinality' => 'one',
      'owner' => 'local',
    ),
// ...