I am slightly lost here.
The Advance Purchase rate means the hotel takes payment (not some kind of authorisation hold) - ie they process and complete payment some time between time of booking and check in (varies by property). So, if your card issuer charges card fees, those will be incurred when the transaction is processed. Even if the hotel would process a refund and charge a different card, you'd still have incurred the card charges and might lose more as the card issuer presumably charges a foreign transaction fee on refunds.
If the charge has not yet been processed, phone the hotel directly and ask to speak to "in house" reservations (ie not central reservations). They will, I am sure, have no problem with taking payment on a different credit card.
As for your colleague, and this is a US specific question, I shall let others answer, but to my mind just put his card number in when you book. The only issue is that the US normally want credit card and ID so you might need to be present at check in as reservation will be in your name but card is in his name. I'm sure there must be a workaround. Also if he needs to expense it, he will need the invoice to be in his name presumably?