I did dual-monitor by creating a backing desk per second monitor page. Monitor 2 paging was done by moving windows between backing and current desks. I also used temp sticky for monitor 2 windows during monitor 1 paging. I used fvwmbuttons on monitor 2 for my monitor 2 pager and it had its own "taskbar". I'd also changed c code to be able to ChangeButton colorsets for the "pager". A window which spanned monitors 1 and 2 was defined as a monitor 1 window. Moving windows between monitors was accounted for. Ive used this for vnc (double width server screen size) and xrandr. A bunch of ugly fvwmrc code.
I'll have to give your code a spin. It looks like your code is doing ChangeButton colorsets also. Is that a post 2.6.6 change?