When I attach a multi-record custom field group to a profile for contribution pages, Civi only allows visitors to enter the fields once. I've read through jira a bit and see that the capability isn't there currently. Is there a simplified example showing how to use API v3 (preferably PHP, but any method is fine) in a way that adds a multi-record custom field group at the end of a contribution (i.e. after payment processing is complete)?
To clarify this scenario: you must be talking about muti-record contact custom data and not contribution custom data (which only supports single-records currently).
I recommend you use hook_civicrm_postProcess to insert code to store the data on form submission. This code inside your implementation of the hook should use the CustomValue API to save the data. You'll find documentation and examples of how to use it in the API explorer.