None of this code is wrong, but “basic XYZ 0-360º to match DCC” is an ambiguous definition of an Euler rotation. I think you might be missing the consideration of the order? These are quite different transformations around the same axes:
var a = new Euler( 1, 1.57, 0, 'XYZ' );
var b = new Euler( 1, 1.57, 0, 'ZYX' );
Applying the .reorder method before you serialize your rotational transformation might help to match whatever convention you need for these DCC tools.