Have you tried using Order_GetData function for getting the default values for the newly created order?
I would think you could modify the values in the object that request returns, and then use Order_UpdateFromData with that data object ? Then you wouldn't have to write 20-30 lines of setting default values for an object you are sending, and you are only doing one request instead of one for each value you set?