I am not really sure if I understood your problem. Let me try though:
1. First time the form should open maximized (This can be done using window state property).
2. After that every time the form should be opened as it was at the time of closing. If it was minimized, open normally. (Right?)
You will need to save the location and size of the form which you are already doing. But are you assigning the value to appropriate properties next time the form is opened? This should be done before Load event.
Edit: Handle the StateChanged event for the for the form and save the settings that tell that the form was maximized. In the form closing check the state again and update setting if needed. Following should help:
StateChangedEventHandler Begin
If WindowState is Maximized then
OpenMaximizedNextTimeSetting = true
End
End
FormClosingEventHandler Begin
If OpenMaximizedNextTimeSetting is true and (WindowState is not minimized OR WindowState is not maximized) then
OpenMaximizedNextTimeSetting = false
End
End
HTH