Wouldn't it make more sense to simply link to this data instead of entering it all over again each time. I'm making a wild guess here, but this sounds like the type of situation where you have an invoicing database with multiple invoices for the same customer. Typically, you don't have a self join relationship, instead, you link between two different tables, each with a different role in the function of your database:
Customers::__pkCustomerID = Invoices::_fkCustomerID
The contact information you describe would be stored in a single record in Customers. When starting a new invoice for a repeat customer, you create a new invoice record linked to the same customer record and thus, any needed contact info is looked up from the customers table. Only any changes in the contact data would be entered and saved back to the customers record.