The problem was that I was using Volt Switch repeatedly, always between those two, and against all of his pokemon 100% of the time, which would be a pretty simple situation to code for when making AIs. If I had three or more pokemon that I was switching between, or if I had been choosing other moves sometimes and Volt Switch others, I could see it, but my Cobalion only used Volt Switch and only switched out to Thundurus, and it always was faster, yet Marshall usually had his pokemon use Earthquake or their Fighting STAB against Cobalion, and then Stone Edge against Thundurus.
This wasn't even intuition related. If I do something simple, like using a self-switching move and switching to the same pokemon, every time a certain pokemon on my team is up, the best AIs used in the game should recognize it after a few repeats and plan for it.