Ftp.dll was tested with large files, so the problem is rather on the server side. The biggest question is if the transfer of 1GB file starts or not.
Turn on logging, maybe something is there:
Try increasing timeout values:
client.ReceiveTimeout = TimeSpan.FromMinutes(1);
client.SendTimeout = TimeSpan.FromMinutes(1);
Turn on SSL/TLS - some AV software may be monitoring traffic and interrupting it if they find something suspicious.
Ftp.dll supports REST extension that allows it to resume the transfer starting at specified position. FTP server needs to support this extension as well.
You can use Ftp.Extensions.SupportsRestStream to check.
If it does, you need to know how much you uploaded: use Ftp.GetFileSize for that.
Then you can use FileStream, FileStream.Position and Ftp.Upload(string remotePath, long remoteStartPosition, Stream source) to upload.