Try this on your pre-processing one:
CMsvc.ChangeOrderCreditHold(ref CMTs);
CMsvc.UpdateCMOrderHed(BTcustnum, ref CMTs );
SalesOrderSvcContract salesBO = Ice.Assemblies.ServiceRenderer.GetService<SalesOrderSvcContract>(Db);
SalesOrderTableset salesOrder = salesBO.GetByID(ordernum);
dsHolder.Attach(salesOrder);