Thanks Sean!  I was able to trouble shoot and came up with the below code that does add my ZM1 segment.

Method OnRequest(pRequest As EnsLib.HL7.Message, Output pResponse As Ens.Response) As %Status
#dim newrequest = pRequest.%ConstructClone()
#dim eException As %Exception.AbstractException
#dim tSC       As %Status =$$$OK

   SET FedExID = "123456"
    SET segcount = newrequest.SegCountGet()
    $$$LOGINFO("segcount "_segcount)
    SET newsegpos = segcount +1
    $$$LOGINFO("newsegpos "_newsegpos)
    SET zm1str = "ZM1|1|||||||||||||||||||" _FedExID
    #;SET zm1str = "ZM1|1|||||||||||||||||||" _FedExID _"|"
    SET zm1 = ##class(EnsLib.HL7.Segment).ImportFromString(zm1str,.sc,pRequest.Separators)
SET newseg = newrequest.SetSegmentAt(zm1,newsegpos)

SET pRequest = newrequest
#;SET tSC = ..SendRequestSync("HL7FileOperation", newrequest)
SET tSC = ..SendRequestSync(..TargetConfigName, newrequest)
#;return newrequest Quit tSC

Thanks for the response Julius.  I have used that before when the property came in the JSON consistently in the same format.  In this case it can come in as: 

"members": null,

or as:

"members": [
                    "dob": "1905-05-01",
                    "firstName": "BOB",
                    "middleName": "T",
                    "nameSuffix": "",
                    "genderCode": "M",
                    "lastName": "COLLINS",
                    "memberId": "123421741",
                    "relationship": "Subscriber"

Not sure this way will accommodate the two possible structures.

I am still getting "ERROR #9406: Unexpected format for value of field, members, using class base mapping".

Is there anything else that needs to be set along with the %DynamicArray?  I also tried %DynamicObject as well.

Property members As %DynamicArray; Property relationship As %String; Storage Default
<Data name="members">

The [ ] seems to let it compile.  How do I access the array?  For example how would I get physicianFirstName from the array? Before I have been able to do something like this.  Set pLOB = pResponse.memberPolicies.GetAt(1).insuranceInfo.lineOfBusiness

I now keep getting this


An error was received : ERROR <Ens>ErrException: <UNDEFINED>zgetProviderInfo+24^CDSM.ProviderAPI.EISLProviderAPIOperation.1 *tsc -- logged as '-' number - @' Set pphysicianFirstName =tsc.GetAt(0).physicianFirstName'

I tried tsc.GetAt(1).physicianFirstName'  as well.

It was on another line below.  The error is still there but it looks like all brackets are matched.

/// REST EISL Provider API Business Operation
Class CDSM.ProviderAPI.EISLProviderAPIOperation Extends EnsLib.REST.Operation [ Language = objectscript ]
{ Parameter INVOCATION = "Queue"; Method getProviderInfo(pRequest As CDSM.ProviderAPI.Request, Output pResponse As CDSM.ProviderAPI.ProviderInfo) As %Status
{ Try { Set tSC = $$$OK
//Build the API request
Set tHttpRequest = ##class(%Net.HttpRequest).%New()
Set tHttpRequest.ContentType = "application/json"
Set tSC = pRequest.%JSONExportToStream(.tJSONRequest) Quit:$$$ISERR(tSC)
Set tSC = tHttpRequest.EntityBody.CopyFrom(tJSONRequest) Quit:$$$ISERR(tSC)
Set tSC = tHttpRequest.EntityBody.Rewind() //Build the Response
#Dim tHttpResponse As %Net.HttpResponse
Set tSC = ..Adapter.SendFormDataArray(.tHttpResponse,"POST",tHttpRequest) If $$$ISERR(tSC) && $IsObject(tHttpResponse) && (tHttpResponse.Data.Size) {
Set tSC = $$$ERROR($$$EnsErrGeneral,$$$StatusDisplayString(tSC)_":"_tHttpResponse.Data.Read())
} If $IsObject(tHttpResponse) {
$$$LOGINFO("Response is "_tHttpResponse.Data.Read())
Set tSC = tHttpResponse.Data.Rewind() Quit:$$$ISERR(tSC)
// Copy the contents of HttpResponse into pResponse
// Navigate pResponse and grab the things we want to store into SQL
// SQL Insert
Set pResponse=##class(CDSM.ProviderAPI.Response).%New()
Set tSC = pResponse.%JSONImport({}.%FromJSON(tHttpResponse.Data).%Get(0))}
catch {
Set tSC = $$$SystemError
Quit tSC
} // below is not auto generated programmer must put XData MessageMap
  <MapItem MessageType="CDSM.ProviderAPI.Request">
} }

I verified with the group sending the reply there will only be one.  I would define a class but the reply does not have a tag to be identified in the reply (example above). How would I build a class in that case or would it be easier to Output pResponse As CDSM.ProviderAPI.ProviderInfo in the method as something else.  This would also Set pResponse=##class(CDSM.ProviderAPI.Response).%New()  need changed I do believe as well.