Well, this is a fairly large question and goes to how you have put together your application. I'm afraid this is going to get advanced fairly quickly.
The big question is what do you mean by unit testing? Are you talking about automation testing, whereby you run the program and a script puts values into textboxes and presses buttons (and the like)? If you are, then I would suggest that you use NUnitForms
] to manage this?
If, however, you are talking about testing the logic internally, then you really need to change the architecture considerably. As that's a very large topic, I won't go into it here unless you indicate that this is the approach you want to take - in which case, I'll expect to see a comment from you to that effect.