im using a 2ks sp4, but after reading you saying it was channel windows, i uopped the count from 400 on @ windows, and it craped out between 400 and 500, at different numbers depending on what other windows i had open, I Noticed it went down 2 for each channel window i had open, so working on that logic, i can see clearly where a 200 channel window limit is appearing from.

As a stopgap to your problem, could you run multiple instances of mirc, the second one passing (i cant remeber how its done but theres a functionality to do it) all its events to the first one, the first one then just handles them.
like all the main mirc ON events call alaises to do the work, and the events being sent in from the other mirc can call the same alais, as if its a local event triggering, ok the events might need some coding correctiions, like not using $nick or $chan etc but rather passed values from the alias call...... hmmm more i write the more complexe it starts looking.