I'm on hte day job at the moment, so this is a note rather than a question...
Assuming that the lack of name and address in custom data fields is the problem, how could it occur?
1 way could be through merging duplicate contact records - contributions and so on are moved across, but the custom fields are lost?
When a contact makes a donation in their own name rather than as a member of a business their email is different - the contribution page creates a new record rather than attaching the contribution to their existing record - then data is lost on merging?
This is only a theory scribbled down between meetings - I'll test later / week end / whenever the time allows