You can attach or assign expense entries to existing invoices, draft or final, after the billing process is over by using the Progress Billing feature in CORE. It is available in the Expense Entries > Batch Update screen wherein you get to link those expense entries to the invoice post billing. This process is also called releasing time and expenses. Check CORE Help Center for details.
If you have already processed and sent invoices to the clients, and then received the approved expense entries, you can associate those entries to the previously processed invoices at a later date. You can do so from the Batch Update option in Expense Entries by selecting those entries and linking them to that invoice. Note that this option is only visible when you are viewing the expense entries by project. So make sure to select Project in the Show drop-down of the screen before using Batch Update. CORE automatically recalculates and adjusts the difference in the value of expense entries and invoice amount by generating a markup. Note that this won't change the invoice amount.
You can do the same to time entries.