Even though filemaker has changed drastically in the past five years, the normalization of database structure really hasn't changed much since version 7 was introduced in 2004.
You have the option of keeping a set of fields for each address in your customers table which I think you are doing now, or a better option may be to normalize your database and store a separate table of addresses that relates to customers.
With a separate table for addresses, you could tie each invoice line item (time or product) to an address, as well as a customer. This would allow you to use those different "contexts" from your invoices.
So your relationships would look like:
Invoices::CustomerID = Customers::ID
Invoices::BillingAddressID = Addresses::ID
Addresses::CustomerID = Customers::ID
InvoiceItems::CustomerID = Customers::ID
InvoiceItems::AddressID = Addresses::ID
InvoiceItems::InvoiceID = Invoices::ID
Your invoice layout should already be a list of InvoiceItems, so with the above relational structure you should be able to show:
-The related invoice details (invoice number, date, etc..)
-The customer details related to the invoice (name, phone, email, etc..)
-The billing address associated with the invoice
-The service address associated with each line on the invoice.
Additionally, if you added a subsummary part to your invoice, you could "group" invoice lines together by AddressID, so that each service address on the invoice had it's own group of charges.
You could also consider adding an id_group field. You would autoset its value to the same as id_customer. Then, for multiple locations, you would simply reset id_group for the other locations to the value of id_group for the main (billing location). So your "Customer" table has two types of Customer - one that is a billing location where id_group = id_customer, the service locations would be where id_group ≠ id_customer. You can join them together using id_group as the key.
You can only create invoices for the billing location, but can add data from related service locations in the same id_group.
In your Invoice line items portal on the Invoice you would have an id_customer field that has a dynamic list that only contains id_customers from within the invoice id_group.
As Mike says you can then sort the invoice details for the actual invoice to reflect each separate location.