Better would be just:
private void button2_Click(object sender, EventArgs e)
{
groupbox2.Visible = true;
groupbox1.Visible = !groupbox2.Visible;
}
and similarly
private void button1_Click(object sender, EventArgs e)
{
groupbox1.Visible = true;
groupbox2.Visible = !groupbox1.Visible;
groupbox3..... = !groupbox1.Visible; //etc
}
This will be more performant, and also adding and removing controls can have side effects with complex guis where controls wont get positioned properly.
To answer you:
a) Not much, but as I said its better to toggle the visibility.
b) What is a workspace? Of course you can ahead with your approach from any window or form. But if you are adding groupboxes of one form to another, then groupboxes from the first form will be removed.
c) My answer..