Request.AdditionalInfo is defined as an array of AdditionalInfoItem, so the methods for working with that array are documented under ArrayOfObjects.

For an array, GetAt expects a key rather than a numeric index. For example GetAt("ClientAddr") should work.

Have you tried doing this instead?

SELECT EnsLib_HL7.Message.RawContent INTO :FullMessage, head.ID As ID, {fn RIGHT(%EXTERNAL(head.TimeCreated),999 )} As TimeCreated, head.SessionId As Session, head.Status As Status,

Also, I've gotta make a plug for keeping in mind the disclaimers on the use of RawContent:
Note that this is a truncated version suitable for use in SQL results and visual inspection, but not a complete or definitive representation of the document.  

I'm not sure if you're looking at the ^ERRORS global directly or viewing it in the management portal under System Operation >> System Logs >> Application Error log. If you're doing the former I'd suggest switching to the latter as it's easier to see what's what.

If you want to post a screenshot from Application Error log the community can chime in, but I'd suggest getting the WRC involved to take a look.

Open Exchange applications:
Marc has not followed anybody yet.
Global Masters badges: