Restore failed for server (Microsoft.SqlServer.SmoExtended)
Try running RESTORE VERIFYONLY and see if you get more information about the failure.

You could also try running RESTORE with CONTINUE_AFTER_ERROR and then run DBCC CHECKDB: 

RESTORE DATABASE database_name 
FROM backup_device WITH CONTINUE_AFTER_ERROR


(i.e. running as TSQL rather than through SMO)

DBCC CHECKDB(N'databasename') WITH EXTENDED_LOGICAL_CHECKS;



  Specifying WITH CONTINUE_AFTER_ERROR in a RESTORE statement attempts
  to restore the database. However, there are many kinds of corruption
  that prevent recovering a database. We strongly recommend that you
  reserve using the CONTINUE_AFTER_ERROR option until you have exhausted
  all alternatives.


All backup strategies should include regular DBCC CHECKDB runs.

Also NOTE: You do not have a backup unless you periodically successfully test restores.

Responding to SQL Server Restore Errors Caused by Damaged Backups