If I understand your question correctly, then you're looking for a solution that will prevent newer backups from overwriting older backups. Two possibilities occur to me:
1) Make the date and time part of the filename that the database is backed up to.
For example:
string backupFilename = databaseName + " [" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + "].bak");
BackupDeviceItem deviceItem = new BackupDeviceItem(backupFilename, DeviceType.File);
2) After each backup, move the finished .bak file to a different location, and/or rename it, so that by the time the next backup is created the original file is no longer present with the original filename. I'd prefer option 1 though.