Can you try this instead?
$keyprotector = (((Get-BitLockerVolume -MountPoint "C:").KeyProtector) | Where-Object {$_.KeyProtectorType -eq "RecoveryPassword"}).KeyProtectorId
Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId $keyprotector
Also, where is the step that you're running this? Near the end of the TS?
If you run the TS Debugger, after you've run your Script to Enable Bitlocker, and it adds the protectors, can you pause the TS, launch the Command Prompt, confirm the Protector is there, then launch PowerShell and test your script.
When I tested your script, it didn't work for me, since [1] was the TPM keyprotector and not the Recovery Password.