I'm having a similar issue & it appears to be because the data that I'm transferring into the unprotected sheet is arriving after the re-protect code executes.
My guess (& I emphasize "guess" since I haven't worked around this yet)... is that your loops are still in process while the re-protection takes place.
EggHeadCafe.com - .NET Developer Portal of Choice
http://www.eggheadcafe.com