Best way to handle mass foreign transactions that are paid for in GBP

Hello,

We have a client with Sage 50 Professional including multi currency.

They currently get a lot of invoices in USD, but use a mixture of different services to pay - all in GBP.

Some of these services can charge upwards of 5% for foreign exchange and this is causing a few issues in terms of accuracy.

I was wondering if there are any guides and best practices available? - or, can anyone suggest how I should be handling the following scenarios?

1) Customer issue invoices in USD - currently setup client as a USD account
2) Client pays for USD invoice using service a which charges in GBP with ~5% service fee - Currently I make a transaction for the GBP amount on the bank statement.
3) Client pays for USD invoice using a credit card in GBP which charges a transaction fee and admin fee - handle as above
4) Client pays a deposit in advance (~$10,000) from a GBP account and the invoices slowly automatically get taken out of the balance.

For 2/3, What I don't get is how to handle the service charges as such rather than FOREX wins/loses - which whilst they technically may be, they are more finance service charges than a few pounds here or there - over the course of a year, it adds up to ~20k and I just want more transparency.

For 4, I just can't get my head around the best way to handle it.

Any help is appreciated.

Thanks