Answers to your questions (to the best of my knowledge)
1) You'd have to use a loop for that, similar to this
Code:
 var %a = 1
while %a <= 12 {
.timer 1 %a msg $chan $read(responses.txt,%a)
inc %a
}
 

The . in front of the timer command makes it silent, so there would be no display showing the activation of the timer.
The timer command was added to reduce the chances of flooding the channel. It limits the display of the information to about one line per second (note this is not an exact timing)

2) Whew!!! You've got quite a project there. I'm not sure how much of the dialog you currently have completed (if any), however there's nothing that you asked for that can't be done.

mIRC dialogs do have Tab (Page) control option so that you can have different tabs (pages). The information to be entered can be set using an on text event, and then added to the dialog at that time (I would recommend running the dialog in a minimized format if that's what you want to do).
I'd be more than happy to help you with your dialog (and I've used dialogs quite a bit) either by writing it myself, or (since you obviously would like to do this yourself) looking over and dialog code that you currently have and then making modifications/suggestions to your code.

If you haven't started the dialog yet, I would like to recommend that you think about getting a copy of Dialog Studio (you can click the link to go to a location for it)

While it doesn't have all of the most up-to-date features that mIRC has available for dialogs, it does have most of the basics and I find it very handy for tyring to figure out how a dialog should look. Note; It does not write the dialog for you, but it will create the code for the dialog display.

I would recommend that you use hash tables to store the information from the dialog, or when entered, as it is the fastest way to store and retrieve information. Again, if you need more assistance with using hash tables, I'd be more than happy to review & make suggestions to any code you already have.

3) I regret to say that a dialog like that would not be the easiest, and may even not be possible. If it is possible, it would actually be more difficult than what you're asking for in question 2.

I am more than willing to stand corrected on anything that I have posted, if it can be shown that I am incorrect.

Additional information: When you do post your codes (and it would help a lot if you did so, as it would give us an idea as to what level of complexity your scripting is at), please remember to use the Code Tags around your code.