I found my problem and it wasn't with how my events were setup it was how I was handling my results. In my code examples above in the submit_Click event:
display_results(\%Config);
My problem was since this was orginally a command line script I was putting all the code in the display_results sub, I modified the code in there to redirect the output to a variable using
select. I know I read an article about the evils of this command in Win32 but I can't find the node right now. I believe the credit goes to Tilly.
When I took this line out and cleaned up my code to be both Command line and GUI aware, everything was working great!