My Mail app switches from my iCloud account to Gmail when sending an Email to a Gmail contact. How can I disable this?
You are probably replying to the message from inside your gmail inbox which will use the gmail account as the sending authority since the email was sent to this account in the first place. The error therefor isn't with the mail.app it is with the way that your emails are sent to you.
If you want to change the address in which you send your email from just tap on your gmail address and switch it to your iCloud address.
If you don't want to have the automatic reply address to be your gmail one I suggest not using the address to receive emails to.
All that mail.app can do for default address is to ensure that your iCloud account is the address that is used when you compose a new email.