The DicomTagType.Item should be passed with the sequence flag set to true:
One way is:
element = ds.InsertElement(null, false, DicomTagType.ScheduledProcedureStepSequence, true, 0);
element = ds.InsertElement(element,true, DicomTagType.Item, true, 0);
ds.InsertElement(element, true, DicomTagType.ScheduledStationAETitle, false, 0);
ds.InsertElement(element, true, DicomTagType.ScheduledProcedureStepStartDate, false, 0);
Another way is:
element = ds.InsertElement(null, false, DicomTagType.ScheduledProcedureStepSequence, true, 0);
element = ds.InsertElement(element,true, DicomTagType.Item, true, 0);
element = ds.InsertElement(element, true, DicomTagType.ScheduledStationAETitle, false, 0);
element = ds.InsertElement(element, false, DicomTagType.ScheduledProcedureStepStartDate, false, 0);