We just tackled this ourselves this week. And our solution is as follows. Sounds very similar
We have Accounts and Invoices. We setup a "Transactions" table and "Transactions relationships" table. One to Many Many to One Scenario with Transaction Relationships being the joining table. When creating a Transaction the User also chooses a Related Account. The form will then populate the open invoices related to the Account on the form with the ability to mark the invoices in grid edit as Paid in Full using a checkbox, or enter a Partial Paid Amt using a Currency Field. They save the form which updates the math on the Transaction and then they "Apply the Transaction" which runs a pipeline and creates all the necessary Transaction Relationships to apply the amounts to the invoices and keep the transaction straight. If this is the route you want to explore, Id be happy to go into more detail. Very similar to what Chayce posted, but the form allows us to have more control over what invoices are paid and then a pipeline does the work.
------------------------------
Michael Knecht
------------------------------