Doug
When the form is closing, it will enumerate through the Businessobjects and collection and check if any of the Bos are dirty...if so, the form will come up.
So you will want to handle the IsDirtyChanged event of the BOs, set a break point on the set of a BO property, or something that will help you diagnose the problem. So the first thing to figure out is which BO and field property is becoming dirty then you can work from there.
Also, check if you have any custom field property or a function/method that may be updating one of your BO's field and then becoming dirty as Trent and Greg suggested.
And what was causig the problem....?