ftp.exe appears to work just fine.
Using ftp.exe as a test, I put the file, and then immediately get the file (still using ftp.exe). When I inspect the retrieved file (in NotePad), it's fine.
When I use your code, I put the file from my application, and then use FileZilla to retrieve it. When I view the retrieved file (in NotePad) it looks like all of the cr/lf have been stripped. When we look at the file under OpenVMS, it also looks like all the cr/fl have been stripped.
I looked at your code (the FTPClient.PutASCII() method), and at first blush, I don't see anything wrong with the way you're doing it, so I'm kind of at a loss as to what's happening.