I have discovered how to record a partial refund on registrations entered on-line as multiple registrations for the same organization.
Scenario:
Secretary registered 5 people for full conference passes. Subsequently learned that 4 of them should have been 1-day passes. It happens that the record that the payment info is associated with is not one of the ones being changed.
What I did:
I edited the four incorrect registrations clicking Change Selections, applying the correct discount code, making the correct selections, and clicking Save. All the Participant Status fields were changed by CiviCRM to Pending Refund. I did not click Record Refund, but observed that the Fees area was adjusting the total fees and indicating the difference from the Total Paid in the Balance column and the Status of the Contribution record for the payment had changed to Pending Refund. When I completed all the edits, I went to the event record for the payer, and clicked Record Refund and completed the New Refund form. It showed the correct Refund Due. I added in a Fee Amount because we add a processing fee for refunds. The Net Amount calculated correctly. All Participant Status fields were automatically updated to Registered and the status of the Contribution record for the registrations was updated to Completed, all the selection changes were recorded there, and the total fee was adjusted correctly. The only thing I don't see in the completed contribution and registration records is the actual refund amount, so I would record that in the contribution note field.