First question is not clear on why this is happening - it seems that the response is sending this error message as it is treating the value of fullUrl as being a relative reference, when clearly it is not.
In regards to setting the internal id of a resource in InterSystems FHIR Server, passing a valid UUID string after "urn:uuid" and having it properly referenced in the bundle will make the FHIR Server assign an id value to it - the value is an incremental number that the server assigns on creation of the resource.
Another method that gives you more control on the FHIR id being created would be to override the method HS.FHIR.DTL.Util.API.Transform.SDA3ToFHIR:GetId() to assign resources in the bundle an id.
If the patient id is included, the operation would probably need to be a PUT instead of POST.
Good question. GUIDs do create the resource, and our FHIR Server seems to have implemented it that way.
However some research around the FHIR specification (http://hl7.org/fhir/http.html#trules) seems to suggest that the fullUrl is to be ignored when processing a POST for a transaction bundle, since the server will generate an id for the resource anyway.