El problema está aquí
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName, dataFileLocation));
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName + "_log", logFileLocation));
aquí databaseName significa el nombre de la base de datos especificada en el archivo de copia de seguridad de db. Pero está especificando el nombre de la base de datos de destino.
Cámbielo al nombre original de la base de datos
aquí el código de muestra para leer los nombres de la base de datos del archivo de copia de seguridad
DataTable dtFileList = sqlRestore.ReadFileList(serverName);
string dbLogicalName = dtFileList.Rows[0][0].ToString();
string dbPhysicalName = dtFileList.Rows[0][1].ToString();
string logLogicalName = dtFileList.Rows[1][0].ToString();
string logPhysicalName = dtFileList.Rows[1][1].ToString