The GUI uses 
While the script does not know the attributes of the file, so it asks for them using the
        MLSD to retrieve the file list (which I assume works). When you then select a file to download, it does not need to read its attributes again, as it knows them from the listing.
While the script does not know the attributes of the file, so it asks for them using the
MLST command. For some reasons, your FTP server fails that.