If you are receiving the following error (Unable to create/update fields: CurrencyIsoCode. Please check the security settings of this field and verify that it is read/write for your profile or permission set.) when pushing Pricebook Entry records, this is due to the fact that the PricebookEntry.CurrencyIsoCode field cannot be updated in Salesforce.
Therefore, the field needs to be unchecked in your Pricebook Entry template (see below):
This field should never be used when you are trying to update records. It is only used when creating net new Pricebook Entries.
Keeping this field selected when you deploy the template will result in any existing Pricebook Entry records failing. Therefore, it is suggested to have a different template string (of the Pricebook, Product, and Pricebook Entry) that has this Currency ISO Code selected, to be used for pushing new records (which should be the minority of cases).
Then you can use the second template string (also of the Price Book, Product, and Pricebook Entry) without the field selected, that is used in all scenarios where no brand new Pricebook Entry records need to be created.