Where did you set m_pMxDoc? By default reference variables are null unless you explicitly set them.
I still do not see where you set m_pMxDoc. The statement "Private m_pMxDoc as IMxDocument" does not set the value of m_pMxDoc. All this statement does is to declare a variable named m_pMxDoc to be of type IMxDocument.
I also think that IApplication is all about ArcMap. Are you running inside ArcMap? Is this an external application which is connecting to ArcMap via the ROT? Where are you getting IApplication, i.e. what specific line of code is setting m_pApp?
If your code is meant to run from ArcMap and you try to start the form directly from visual studio (debug?), it will not work. You need to pass in a valid reference when you create the form, VS cannot do this. I suggest you change the debug properties of your start up project to start arcmap, then invoke the form through the command and check the values being passed in. You can still set break points, step through the code, view values and edit the code when you start ArcMap in debug mode.