1. Перемести «uses
соответствующую форму» из интерфейса в implementation. Такие циклические обращения разрешены.
Правило хорошего тона: что угодно — uses, const, var — желательно держать в implementation, если только они не нужны интерфейсу.
Впрочем, подобный циклический «комок грязи» говорит о том, что архитектура программы плохо продумана, и для больших программ это нежелательно.
2. Явно неверный код Form3.Create(self);
Если создать форму — то правильно Form3 := TForm3.Create(self);
Если кто-то создал, а ты повторно вызвал конструктор — зачем такое?