After a lot of testing, ive gone for option 3...

Ive knocked up a log on script that will copy all the teachers current desktop items and favorites and copy them to their N: drive in the correct folders. There is also a 30sec wait to allow the log on to finish and settle down before its starts the copy. This can be run before the profiles are redirected to the new locations.
Next time they log in if the desktop folder is already there the script will stop to avoid copying over and over...

Assuming the home drive is N: and that is where your are redirecting both to there:

on error resume next
Set wshShell = WScript.CreateObject( "WScript.Shell" )
strUserProfile = wshShell.ExpandEnvironmentStrings( "%USERPROFILE%" )
Set objFSO = CreateObject("Scripting.FileSystemObject")

wscript.sleep(30000) '30 second

source = strUserProfile & "\Desktop"
dest = "N:\Desktop"
source2 = strUserProfile & "\Favorites"
dest2 = "N:\Favorites"

If objFSO.FolderExists("N:\Desktop") then

objFSO.CopyFolder source, dest, overwrite = False
objFSO.CopyFolder source2, dest2, overwrite = False

End if