NWN WIKI is your friend:
http://nwn.wikia.com/wiki/DispelTLDR: Each spell active on you gets it's own roll to see if it's dispelled. If it's used as an area, then it only checks against your most powerful active spell. Spells are prioritized by a set list (which I can't seem to find at the moment). I wouldn't be surprised if they are prioritized in the same order as
Breach spells, but I'm not certain. The probability discrepancies you're seeing is due to NWN faulty random number generator. It's not really random, but based off a "seed" created by the area you're in. It creates inconsistent probability at best. Losing 2-3 buffs out of a dozen if you're level 23 is about normal for NWN dice.