Not sure if this helps, but when I wrote something to use ListDirectory, I used the SftpFile class instead of FileInfo and my first attempt worked.
IEnumerable<SftpFile> myList = new List<SftpFile>();
On the other hand, I am trying to use SynchronizeDirectories and getting nowhere. Same errors as you not above.