I appreciate the pointer, but I'm afraid I'm in over my head. I'm using the powershell example you have created here: 
https://winscp.net/eng/docs/library_session_synchronizedirectories#powershell
I have modified the session options according to my needs and I changed 
$session.SynchronizeDirectories to 
$session.CompareDirectories, but I'm lost on how to error handle if the 
CompareDirectories fails or even how to move through the 
ComparisonDifference class or 
ComparisonDifference.Resolve method. Here's what I have, and I know it's wrong, I just don't know where to go from here:
    # Compare Directories
$synchronizationResult = $session.CompareDirectories(
    [WinSCP.SynchronizationMode]::Local, "D:\localdir", "/remotedir/", $true, $true, "Either")
 
# Act?
$ComparisonResult = $synchronizationResult.ComparisonDifference()
$ComparisonResult.Resolve()
 
I hate to ask you to just solve this for me, but I've seen how many people are asking for a "retry" option, so perhaps it would be beneficial to the community as a whole to add an example script that uses 
CompareDirectories and 
ComparisonDifference.Resolve with "retry" error handling the way you're talking about (with PowerShell) to your documentation? I personally would be very grateful.