I just checked the code itself and it was using GetStorageNode, below are the steps to replace this call with the extended version that lets you overwrite.. Since it has been quite some time since this application has been released you should update the web reference for IMFS. To do this you will need to right click on the NVXIMFS web reference and click "Update Reference" as seen below:

Once this is updated you will be able to see in the IMFS object the new method calls. Open to the file FTPServerControl.cs from the solution explorer and browse to the UploadFile method on line 615.
Update the code from:
// Get the storage node and update the transfer URL.
StorageNode storageNode = imfs.GetStorageNode(clientAuthenticationToken.SessionToken, 10000, null);
to:
// Get the storage node and update the transfer URL.
StorageNode storageNode = imfs.GetStorageNodeExtended(clientAuthenticationToken.SessionToken,
10000, clientIP, false, currentDirectory, true, 600, 259200);
This will let you overwrite (assuming the FTP Protocol allows it which I'm not sure of) and it will also use the clients IP Address to decide which node to upload to.
Optionally something that needs to be updated as well is:
Original (FTPServerControl.cs line 372):
SearchResults results = imfs.SearchFileSystem(clientAuthenticationToken.SessionToken, clientAuthenticationToken.Username,
filename, null, 0, 0, DateTime.Parse("1/1/1900"), DateTime.Parse("1/1/3000"), 1000);
foreach (SearchItem item in results.Item)
{
if (srcFile[0] == '/')
srcFile = srcFile.Substring(1);
if (item.ItemPath == srcFile)
{
return item.CreatedDate;
}
}
return DateTime.MinValue;
To:
PathInfo pathInfo = imfs.GetPathInfo(clientAuthenticationToken.SessionToken, currentDirectory + "/" + filename, false, false, false);
return pathInfo.CreatedDate;
The second fix will improve the speed of downloads / file lookups and avoid a search charge.
Best regards,
Barry R.