This may be obvious to you all, and me going much further probably isn't realistic, but I am curious if there's a problem in the resolving of inherited remapped faces while changing windows. Specifically that it appears to use the lack of remap in the newly created window to resolve the remap in the original window. The remapping of the active/inactive faces happens explicitly inside display_mode_line / init_iterator with an explicit window reference. I don't know enough to know where the inherited faces get remapped, but if the window used to remap them is incorrect (because it's the current window, rather than the window the mode/header line is being drawn in), I could see there being the issue we're observing.
Not sure if that helps, but that's as far as I was able to get in my investigation so far.
Thanks,