Do I need to reinstall the OS before using adb restore?
Backups made with the -system argument can't be restored to a different Android version. It's not that the OS itself is in the backup: it's that the settings from system apps are in the backup and can only be read by the same version that produced them.

Usually upgrading to a newer minor version (e.g. from an earlier milestone release to the stable release) will work fine, because the apps are designed to be upgraded that way: a newer version of the app can read settings saved with an older version. However, going backwards will almost always cause problems if there have been any changes. Obviously the older version can't understand the settings added by the newer version.

You need to find the same version of CM12 that you had before. Try to avoid using a snapshot or nightly build.