Might be a slight necro, but I feel this can still be of use.
The chat frame tabs are set to anchor to the chat background when the UI scale changes (for example when switching in and out of windowed mode). Because of this, aside from moving the GeneralDockManager, you also need to hook FCF_SetTabPosition.
For example:
Code:
hooksecurefunc("FCF_SetTabPosition", function(chatFrame, x)
local chatTab = _G[chatFrame:GetName().."Tab"];
chatTab:ClearAllPoints();
chatTab:SetPoint("BOTTOMLEFT", chatFrame:GetName().."Background", "TOPLEFT", x+2, -179)
end)