Question: Is it good practice to declare variables to be used across a program in a Module then populate them in one form and use what you have populated to these variables in another form?

I plan on closing the population form after the data has been populated to the variables so I see this as the only method that would work. 

Am I right in thinking that passing parameters from the population form to the display form wouldn't be appropriate in this situation, if even possible?

Answer: 
I guess it **depends** on your application and the kind of data you're talking about. 

Think of a `User Login form` that saves the user information after logging in. You can then keep this information in a Module shared across your entire application because it's not expected to change during the session. So you can quickly check the Permission, the Role, the Username from all your program Forms.

On the other end if you're querying a database you are probably asking for the latest data available and you do that in the specific Form you're using, without the need to share it across other Forms in the program.
No, and yes.
Define a class or perhaps more than one to hold the data, pass that about. If by module you mean one of those .bas things with a bunch of primitive types in it, then that would be considered bad practice unless there was no practical alternative.

It's not expected to change was what you said, but if you use a bunch of global variables, you can expect them to be changed and it to be very hard to track down, when and why.

They'll be changed because it was convenient, or in error and you end up with an intermittent major PIA bug. A class with getters and setters on it's properties, and it can manage changes to it's members, so if some "fool" of programmer makes a slight mistake..
The other consideration is unit testing which would be a nightmare if you go the way you are thinking.