I have not attempted to debug your code but you have
FileName = folderPath & Attach.FileName
and
Attach.SaveAsFile (folderPath & Attach.FileName)
you should have instead
FileName = folderPath & Item.Subject & Right(Attach.FileName, InStrRev(Attach.FileName, Chr(46)))
and
Attach.SaveAsFile (folderPath & Item.Subject & Right(Attach.FileName, InStrRev(Attach.FileName, Chr(46))))
The subject may be unique, but this will not work as it stands if the subject contains illegal filename characters.