Hi @micheal,
EOAs are externally owned accounts and have a private key.
Each user of your system will have an EOA and they would need to pay for gas to create a transaction that interacts with your smart contract.
Alternatively, you could use meta transactions, where each user signs a message with their EOA and you have a relayer that submits the transaction.
You may want to sign up for the workshop next week which will cover meta transactions and how you can implement using OpenZeppelin Defender: Workshop: Gasless MetaTransactions with OpenZeppelin Defender - Thursday 11 February 2021
You could use a relayer (as described above)
If the client is creating a transaction then they will need to pay gas in Ether for the transaction and any fee you are charging, this could be in Ether or a token (including stable tokens).
If you are relaying the transactions for your clients, then you could charge your clients using Fiat, or Ether or a token.
No, it depends how you architect your system.
Whoever initiates the transaction pays gas, either the clients directly, or if using meta transactions via the relayer, it is the relayer.