OK, I see the problem. I have to admit it's pretty confusing. Our FTP scripting feature is actually executed using an external executable called edtftp.exe, which you'll find in C:\Program Files (x86)\Complete FTP\Server. This means that it "lives" in the Windows file-system rather than the CompleteFTP virtual file-system. In other words, when you're telling it the path of a local file you need to use its Windows path rather than its CompleteFTP path.
This means that you need to do the following:
# change folders
cd "%VirtualPath%"
# upload the file for which the trigger occurred to the server
put "%WindowsPath%" "%FileName%"
The 'cd' refers to the remote server's file system. I understood that it has the same directory structure as the local CompleteFTP server, so I used the local server's virtual path. In the 'put' I referenced the local file using its Windows path for the reason explained above.
I hope that makes sense.
FYI we are actually planning to offer a much more powerful Javascript-based scripting option some time later this year, which will eliminate these problems, as well as offering a far more flexible syntax.