Hi Daniel,
When you Float a tool window, it will try to restore itself to the last floating location it was at. Or if this is the first time floating, it will set WindowStartupLocation.CenterOwner on the hosting WPF Window. I think the problem here is that since you are in a MFC application, there probably isn't an owner WPF Window available, right? Then Windows is choosing where to open it.
Since there is no owner in this scenario, if you are invoking a menu item to float the tool window, you could alter the menu item to call the ToolWindow.Float(Point, Size) method instead of having it use its default ToolWindow.FloatCommand behavior. That way you'd have some control over where it goes. The DockSite.MenuOpening event lets you customize any menu opened for docking windows before the menu is displayed.