Recalculating pending invoices is not a valid approach for accounts to change plans.
If you try to replace a supplemental plan or add a supplemental plan where a charge needs to be generated, a new invoice is generated and the recalculated pending invoice will not capture this on the original invoice.
Instead, you could either use the pre_calc_invoice API or any of the supplemental plan APIs with <do_write> set to False to present invoice charges prior to adding supplemental plans and generating an invoice.