Let me specify that when I said "on the fly" I don't mean server-side. The Gdrive server just isn't capable of that sort of computing. You still have to re-upload one way or another. By "on the fly" I mean you can just drag&drop files from an unencrypted location to an encrypted one (or have a script do this for you until it is done).
The short explanation:
Set up a direct remote (without encryption) and one with encryption layered.
Then just transfer your files from one to the other normally (if you have a ton of files you might want to use a move command with a --bwlimit 8M to avoid it stalling from daily quota restrictions). Gdrives have 750GB upload/day quota.
The encrypted and unencrypted remotes would look something like this in your configuration file:
type = drive
client_id = [REDACTED]
client_secret = [REACTED]
scope = drive
token = [REDACTED]
team_drive = [REDACTED]
type = crypt
remote = Gdrive:\encrypted
filename_encryption = standard
directory_name_encryption = true
password = [REDACTED]
password2 = [REDACTED]
You then can mount both Gdrive (which will be unencrypted) and Gdrivecrypt (which is encrypted) and transfer between the two. Data goes from Gdrive -> your system -> back to Grdrive in encrypted form.
There is unfortunately no way to get around that you have to re-upload data to encrypt it.
The only workaround is to use rclone on an external VPS (like Goodle Compute Engine) so you effectively have unlimited bandwith to do the operation, but that adds another layer of complexity of course and is probably best reserved for advanced users. It can be done at fairly trivial cost or potentially even free though - if you happen to have really limited local bandwidth.