Well, the command we use to do this is quite simple:
Code:
bless -folder "/Volumes/Mac OS X/System/Library/CoreServices" -save9 -label "Mac OS X" -setBoot
We never make use of the device ID: that's being used by OSX itself. (You can see the exact command by Cmd-clicking the title bar of the failed log, and look in the Logs folder that'll appear: the paired .offendingCommand file contains the exact failed command... but the error is from this.)
If you run that in Terminal after the copy with SD, does it work?