As a spy, you presumably have a lot of deception-related skills. One good option is to make it look like a suicide. People who commit suicide generally don't want to be resurrected, and won't come back if you try. If you also create a fake corpse (find someone who died of old age and thus can't be resurrected, and disguise their corpse as the sorceress's), the sorceress's allies might simply cast raise dead, confirm that it failed, and give up.
Likewise, as a spy, perhaps you can impersonate the cleric who's going to be casting the true resurrection, and just tell her allies the spell failed. Heck, perhaps you can just impersonate the sorceress for a while, and tell her allies you're going on a personal side quest and please don't bother her for at least a year. That should throw them off the trail.
The problem with all the above approaches is that, if the sorceress is a player character, and the player is sitting next to you at the table saying "he totally killed me, don't fall for the deception", the other players might choose to have their characters not fall for the deception.
So let's talk about incapacitating her. One funny idea might be to capture her and put a helm of opposite alignment on her head. You can keep removing and re-equipping the helm until she rolls a 1 on her saving throw. Once she changes alignment, she might become your secret ally. (This is arguably the nicest thing you could do, in that it doesn't involve removing another player's character from the game.) Even if she doesn't become your ally, she "views the prospect (of returning to her former alignment) with horror", which means she probably goes into hiding to keep her former allies from changing her back.
Along the same theme, if she gets turned into an undead, it's impossible to resurrect her until the undead is destroyed. For example, if you let a wight or shadow or mohrg or spectre or vampire or wraith kill her, she'll become an undead and the true resurrection spell will fail. The problem with most of these approaches is that the sorceress's allies can just cast discern location to find the undead she's turned into, then teleport and kill the undead, after which true resurrection will work as normal. So it's a speed bump, but not a permanent solution.
There is one exception: if you let a vampire kill her, she keeps all her class levels when she turns into a vampire. This could make it very difficult for the party to track her down and kill her -- for example she could plane shift to somewhere they couldn't get to easily, or she could teleport away when attacked, or she could just fight them and be really hard to defeat. If the vampire that kills her has 10 hit dice, it gets control of her, and it could command her to run and hide, or to be your ally or whatever. Otherwise she's free-willed, which could be bad for you.
A third option might be to try to get help from the people you're working for. You've told us that you don't have access to a trusted spellcaster, but surely a whole enemy nation has at least one or two good casters? You might try incapacitating the sorceress and giving her body to your allies, and let them deal with keeping her prisoner.
You’re misreading dispel magic. It can be used to dispel, or it can be used to counterspell, and these are two separate things.
Dispelling ends an effect already in place. It occurs after a spell has completed casting. By definition, an instantaneous effect ends the instant casting is complete; as such, there is nothing left to get dispelled in the first place: there is no effect to end.
Counterspelling prevents a spell from being cast; the effect never happens. You cannot counterspell a spell already cast, regardless of its duration. Instead, you interrupt the casting so that the casting never completes, and the effect never happens. The line about what kinds of effects you can and cannot dispel doesn’t apply, because counterspelling doesn’t do anything to effects, and isn’t dispelling.
For the record, counterspelling, whether with dispel magic or by using the appropriate spell to counter whatever they’re trying to cast, is not the only way to disrupt spellcasting. You can also deal damage to them, either with a continuous-damage effect or with a readied or immediate action to hit them while they’re casting. Regardless of approach, though, the idea is to prevent the casting from completing, so that the effect never comes into play.
One of the most effective approaches is known as counternuking, and involves readying, as if to counterspell, but instead of readying dispel magic, you just ready the most reliable, high-damage nuke you can. When they try to cast, you blast them, and force them to make an unreasonably-difficult Concentration check, which they’ll almost certainly fail. Then you get to hit them and stop their spell. This tactic is effective, but may lead to a more boring game as spellcasters spend all their time waiting for others to move and are too afraid to ever cast their spells.
There are two things that protect against Dispel Magic:
EDIT: Expanding on point 2
This is not a guaranteed defense but it is a defense that is easy to implement. It also has a pretty good chance of succeeding. If your permanent spell is CL 13 and you are now an 18th level caster, you can still cast your Mage Armor at CL 14. This makes sure it gets hit before the permanent spell and is about as likely to get removed as the permanent spell. Any low level, long duration spell works well for this.
It all depends on how paranoid you want to be. You could also cast multiple low level spells to increase the chance that one of them will take the hit (and to soak up those Greater Dispels).
When I'm running a mage and I've gone up significantly in level, I save up the funds to re-cast it at the higher level and do so if it is convenient or don't sweat it if it gets taken out.
Heck I often try to research the spell (GM option here):
I use to have it fail all caster level effects just to spite Drow before I remembered that they can suppress that.