I don't know a good way to fix the Karthan situation. If the AI is fixed so he uses transports more, he'll constantly invade your capital. If the status quo remains, it'll take a long, annoying buildup to beat him. I certainly remember the first time. I plopped about 20 transports onto it and learned that the models will shrink if there are too many units on a territory.
Not really a fix but it worked for me, i made sure the waters where clear so my transport didn't end up in combat with an ironclad or a Juggernaut, and dropped a single transport of units onto his capital. From there i just waited in base getting buildings up for the long fight to take him out but when dragon timer is up i wiped the floor with his army single handily in dragon form, was close cause the tip of his massive column was just about to reach my starting location, but nothing a bit of fiery splosions couldn't fix Trinculo would be proud. I was using both breaths (acid spray/breaching fire), devastation, scales of steel and blood leech as mountain dragon. Make sure you are always hitting something if you are tanking shots and aim where they are clustered for the AoE damage, blood leech gets life steal from the splash damage aswell. Costs a bit of research as apposed to gold, but it saves you units you can use pushing the front against green and yellow.
I didn't do that, but I took the capital and there was still an empty transport in open water, so I had an extra turn to kill it, and that also broke the cap. I entered Act 2 with 94 gold and 50 Research.
Yeah i hate transports randomly being around... bad experiance of me leaving one to opt in for a naval battle and it plonked a bunch of units in the middle of a undefended area of the map... T_T so now i murder them all.
So i know nothing about the programming but it seems the trigger for removing the cap is on occupying the capital, rather then entering act 2.