Попробуйте
void UserControl1_Click(object sender, EventArgs e)
{
UserControl2 u2 = new UserControl2();
this.Parent.Controls.Add(u2); // if you want to add to parent
//this.Controls.Add(u2); // if you want to add to the first UserControl
u2.BringToFront();
this.Visible = false;
u2.Visible = true;
}
Я думаю, что ваша проблема в том, что вы не назначили usercontrol2
в коллекцию родительского контроля.