Form load events should run for new forms and when reopening existing forms, so what you describe is not expected behavior. What is your form load event supposed to be doing? Could you explain that with some detail?
You can't create a hyperlink in code in InfoPath. What you can do is create a hyperlink in your form, have it populate based on a formula, then use code to change the values of the fields used in that formula.