If my understanding is correct, on registration at least, the payment and invoice might correspond to several plans and so the invoice would need to display an appropriate one of several plan specific query fields that would each capture the latest DATE_PAID for a plan.
You'd basically have a query field per plan to grab the latest date paid. If you only have a couple of fields it won't be too bad, but if you have a lot it could be pretty annoying to have to setup. Unfortunately I just don't have any other suggest at this time, sorry.