Did you ever make progress on this?
I am also stumped on Fidelity. The error I get back is
400 Bad request element type "SONRQ" must be terminated by the matching end-tag "</SONRQ>"
If you look at this request, there is clearly a "</SONRQ>" tag.
POST https://ofx.fidelity.com/ftgw/OFX/clients/download HTTP/1.1
Content-type: application/x-oFX
Content-length: 506
ENCODING:USASCII
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
CHARSET:UTF-8
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX>
<SIGNONMSGSRQV1>
<SONRQ>
<DTCLIENT>20130719053526</DTCLIENT>
<USERID>*****</USERID>
<USERPASS>*****</USERPASS>
<LANGUAGE>ENG</LANGUAGE>
<FI>
<ORG>fidelity.com</ORG>
<FID>7776</FID>
</FI>
<APPVER>1600</APPVER>
<APPID>QWIN</APPID>
<APPVER>0900</APPVER>
</SONRQ>
</SIGNONMSGSRQV1>
</OFX>
As to GetFX, I've played with its source as I try to create my own. As you note, it doesn't work. I added end tags for all the XML and got it to the same point as my own code: error message about </SONRQ>.
Let me know how you are doing on this!!