Qt. Как передавать данные между формами?
По неконстантной ссылке (или указателю):class AddItem
{
    AddItem(MainWindow *parent, QList<Institution>& ins);
...
private:
QList<Institution>& parent_institutions;
};
Но вообще это плохая практика. Свою приватную переменную должен редактировать класс который ей владеет. Для этого нужны свои методы - MainWindow::AddInstitution, MainWindow::RemoveInstitution, etc. Так как это у вас QT, то тут надо использовать слоты и сигналы.
Вариантов много, в зависимости от того, форма модальная или нет, и нужно ли каким-то моделям передавать сообщение «обновись».
Вариант 1. class AddItem : public QWidget
{
public:
  AddItem(QWidget* aParent, QList<Institution>& aInstitutions)
      : QWidget(aParent), institutions(aInstitutions) {}
private:
  QList<Institution>& institutions;
};
Во втором варианте у нас модальная форма, но редактировать можно только копию (например, институции первой формы задействованы в какой-то модели, или нужны каскадные удаления, или что-то ещё).class AddItem : public QDialog
{
public:
  int exec(QList<Institution>& aInstitutions);
private:
  QList<Institution> institutions;
};

int AddItem::exec(QList<Institution>& aInstitutions)
{
  institutions = aInstitutions;
  int r = QDialog::exec();
  if (r) {
     aInstitutions = std::move(institutions);
  }
  return r;
}
И много-много других вариантов.