is there any way to dictate which UTXO the fees come from?
Some wallets have a feature named "coin control".
The fee is simply the difference between input amount and output amount. There is no correspondence between individual inputs and individual outputs when there are multiple of either - the notion of fees coming from one or other input simply has no meaning in the Bitcoin network.
The Ordinals project makes an arbitrary assignment according to its own off-chain rules. This is based on the ordering of inputs and outputs in the transaction - but this order has no meaning in the Bitcoin network and can be random.