The tokens someone owns is just a balance in your Token smart contract.
How will my users with ICO tokens pay for dApp transactions fee on
Ethereum, should I send them in ether or token ?
They can't use these tokens to pay for transaction fees -if you are referring to gas costs when executing a transaction-.
If you mean using the token as a currency within your applications, then what you need to do is to build your Dapp's smart contract to read data from your Token address and use your users' balance as a requirement to execute your dapp's functions. This will require your user to approve some balance to your dapp contract first.
How to use tokens in a private chains built on Ethereum ?
How to use tokens to make transactions on another blockchain lets
assume Ethermint for example here ?
As I mentioned before, these tokens only exist as a balance in a smart contract which is part of the Ethereum network where you deployed it. So, this token does not exist in another network (a testnet or a private network, unless you deployed the token on those) and they can't be accessed from other blockchains as well.