I think you need to make a copy of the row and pass one as unchanged, and then modify the second version and mark it as updated. That’s my first guess, going off of a few posts recently about how Epicor expects the data.
Edit to add: here’s a link to a comment talking about this: BPM Email Alert - Fields Show Twice - #10 by jgiese.wci