Your elapsed minutes calculation is wrong (plug in an elapsed time exceeding 1 hour to see). Change old to new as shown below
--old
--cast(datediff(ss,BS.backup_start_date,BS.backup_finish_date)/60 as varchar(10))
--new
cast((datediff(ss,BS.backup_start_date,BS.backup_finish_date)/60) - (datediff(ss,BS.backup_start_date,BS.backup_finish_date)/3600) * 60 as varchar(10))