yea its not odd behavior at all. The chat.cache.txt controls what loads. You may want to change that code to have a SetUserPlaced(true) in there as well so that it will actually save your changes to the chat.cache.txt.
The chat frame code for GrimUI sets up the windows once then saves any changes the user makes, i just made it work like this last night actually so its all fresh in my head... here is the code example.
Code:
ChatFrame1:ClearAllPoints()
ChatFrame1:SetPoint("BOTTOMLEFT", GrimUIcoreArtB1, "BOTTOMLEFT", 14, 25)
ChatFrame1:SetWidth(350)
ChatFrame1:SetHeight(190)
ChatFrame1:SetFrameLevel(8)
ChatFrame1:SetUserPlaced(true)
Now that will set up where its located and what size it is. The SetUserPlaced(true) will make it save to the chat.cache.txt file so it will reload t his way every time. NOW for the catch... if you do not put this piece of code inside another function that is only called once on the first login it is used it will automatically move the chatframe back to this location every time you log in. In other words you need to have a function that creates a saved variable. Then have the chat code look for the saved variable if it does NOT find it then it runs the code above. IF it does then it does nothing. The dummy commands you are useing to prevent the chat.cache.txt from loading again can then be removed since the chatcache will then have your settings saved into it.
So to sum it up.... the reason for the funny behavior is that the chat.cache.txt loads after your addons are loading and you are not saving the position your addon has done to the chat.cache.txt without having that setUserPlaced function in there.
So when it loads the chat.cache.txt it loads what ever the settings were prior to your addon changing the positioning.
You can leave it the way you had done it but should you make any changes to the chat windows in game they will reset when you logout.