I doubt this is an option (i.e. it depends on if HubSpot always has all the currencies that need to be set), but there should be a 'Currencies: Replace All Lines' mapping that you can hardcode to true, and then this will tell NetSuite to wipe out and reset all the currency values, which should solve the duplicate currency value issue.
If HubSpot does not always contain all the currency values, or if currency values are being updated in NetSuite directly by some other business processes or integrations (which i imagine is the case), then you really need a solution that can dynamically iterate through the existing currency list in NetSuite right before the record is updated, and then decide if the currency value(s) being sent by HubSpot need to be preserved vs discarded, etc... To do something like this, you can use a preMap SuiteScript hook.