In your code you loop the File.Versions inside the Item.Version, you shouldn't do that they are two parallel collections, similar to the SPFile and SPItem being parallel versions of the latest version.