Assuming there were no unusual circumstances, here's what you did wrong:
You shouldn't have paid any excess baggage charges. As you came from the US, you were entitled to continue with the heavier baggage allowance for every leg of your journey.
The only time this doesn't apply is if you buy the ticket for the domestic leg inside RSA. Assuming the ticket was issued in the US, you're entitled to the heavier baggage allowance. - It could be the check in agent was trying to con you for the excess baggage charge but it's more likely, they just stuffed up. Hell, your buddies could possibly have bought another ticket and had two seats, two baggage allowances and two meals for less than USD180!
I'd suggest that next time, you pull out your international ticket and point out you're from the US and are entitled to a heavier baggage allowance and if they dispute that, ask them to call a supervisor and show you the regulations that prove that fact and if you somehow lose that debate (and I doubt you would because it's an international IATA agreement) just buy a second ticket if it's cheaper.
Your porter has no right to demand anything. You should have given him R20 and if he argued, just say, OK, let's call a cop and discuss this..... he'll back down straight away and without argument.
As for the tablets, if they're sealed medication, he doesn't usually have the right to take them...... what for example would have happened if they'd been malaria tablets for another part of your safari?