See Updated XML. It has changed the output but still not quite right. Now it uploads doc1 and applies template correctly and inserts templates 2 & 3 in the correct location, however doc2 & doc3 are not there. Just the document that was used to create the template.
<compositeTemplates>
<compositeTemplate>
<compositeTemplateId>1</compositeTemplateId>
<serverTemplates>
<serverTemplate>
<sequence>1</sequence>
<templateId>6A68F081-643D-4DAC-8660-3CC0D59166D5</templateId>
</serverTemplate>
</serverTemplates>
<document>
<documentId>1</documentId>
<name>doc1</name>
</document>
</compositeTemplate>
<compositeTemplate>
<compositeTemplateId>2</compositeTemplateId>
<serverTemplates>
<serverTemplate>
<sequence>1</sequence>
<templateId>F2807DA5-89E0-445A-BE32-98951C7AD9F0</templateId>
<compositeTemplateId>2</compositeTemplateId>
</serverTemplate>
</serverTemplates>
<document>
<documentId>2</documentId>
<name>doc2</name>
</document>
</compositeTemplate>
<compositeTemplate>
<compositeTemplateId>3</compositeTemplateId>
<serverTemplates>
<serverTemplate>
<sequence>1</sequence>
<templateId>B9377A6C-BC24-4175-B749-81629E977C26</templateId>
<compositeTemplateId>3</compositeTemplateId>
</serverTemplate>
</serverTemplates>
<document>
<documentId>3</documentId>
<name>doc3</name>
</document>
</compositeTemplate>
</compositeTemplates>
also changed Content-Dispositon
"Content-Disposition: file; filename=\"" + fileName + "\";documentId=1; compositeTemplateId=1\r\n\r\n";
"Content-Disposition: file; filename=\"" + fileName + "\";documentId=2; compositeTemplateId=2\r\n\r\n";
"Content-Disposition: file; filename=\"" + fileName + "\";documentId=3; compositeTemplateId=3\r\n\r\n";