Kentico stores the Addresses against the Order which is important since a customer may move and you would still want the older orders to show the original address.
Therefore, in your synchronization routine you should add a new record to the OrderAddress table for each order and then set the OrderBillingAddressID and OrderShippingAddressID to that newley inserted record.
// Gets the customer's address
AddressInfo customerAddress = AddressInfoProvider.GetAddresses()
.WhereEquals("AddressCustomerID", customer.CustomerID)
.FirstObject;
if (customerAddress != null)
{
// Gets the data from the customer's address
orderBillingAddress = OrderAddressInfoProvider.CreateOrderAddressInfo(customerAddress);
orderShippingAddress = orderBillingAddress ;
// Sets the order addresses
OrderAddressInfoProvider.SetAddressInfo(orderBillingAddress);
}
Since you mention both-way synchronization, you would have to consider what happens if a Customer Address is changed in Kentico as I presume that will update the record in the ERP and in turn change all the Old Orders to show new address details.