Hi Sam,
I don't think it's possible to determine what fields were changed but you can set the flow to only trigger if specific fields change on the case as opposed to any.
The only thing I can think of potentially and I haven't tested it is to turn on audit logs in Dynamics and somehow get the audit log values in the flow. Again haven't tested it or even sure that would work.
If you're sending the email through a Power Automate flow.
You need to create the email record first. Ensure you use the CDS (current environment) connectors. Set the From and To fields but also ensure you prefix it with for example:
systemusers(guid of the system user) or contacts(guid of the contact).
To actually send the email you need to call a bound action, linked to the email entity. There's a flow step called call a bound action under CDS. You'll basically add the GUID of the email you created in the previous step in.