In .NET 6.0 adding a MDI child only seems to work after the MDI parent is loaded. Therefore add the MDI child creation code in the Shown event handler and all functions correctly.
private void MDIParent_Shown(object sender, EventArgs e)
{
MDIChild child = new MDIChild();
child.MdiParent = this;
child.Show();
}
MDIForm is a standard form, note that the MDIParent form needs the IsMdiContainer property set to true;