~$ xfwm4 --replaceMany thanks! If I hadn't stumbled across this tip, I don't know how I would have been able to fix this.
This has happened to me three times now.
It appears to have something to do with corruption of the session when you log out. To avoid the problem altogether, set up your desktop the way you want it, and the log out while saving session state (it's a checkbox on the logout dialog). The next time you log out, uncheck that box. If you don't save, you can't get corruption on save, right? That's the theory anyway.
After not experiencing the problem for about 4 months, I have to give a thumbs up to the uncheck the "Save Session State" solution. Theory confirmed. Or someone fixed the bug.