When using an existing Estimate to create a new Invoice (after an Estimate has been accepted), after you click "Create Invoice" it will generate a new Invoice, but the Contact is missing the Custom Fields that should be displayed based on Invoice Settings.
If you remove the Contact from the Invoice, then immediately re-add the Contact, the Custom Fields are then displayed properly.
Custom Fields currently only populate correctly when creating an Invoice directly, not when creating an Invoice from an Estimate.