Next time, only provide the code that is directly related to your question. The majority of that code has nothing to do with your question.
Now, to answer your question, use
this.Controls.SetChildIndex(gv,0);
after you add it to the controls collection. This will tell the UserControl to draw it first before anything else.
Also, as an FYI, it is not good practice to call
DataGridView gv = new DataGridView();
outside of a method. That should really be placed inside the contstructor.
You can declare
gv
globally still, but you shouldn't call
new
outside of a method.