My interpretation of the swgoh.gg hieroglyphics (which I think show that's it's resistible), starting from the top (dispel):
Part A (Dispel)
Find current target
Find all status effects on them with the tag "clearable_buff"
Remove all status effects with this tag (which should include Protection Up, but not bonus protection), which is not resistible (I don't believe any dispels are resistible, but they are evadable)
Part B (Modify Max Protection)
Find current target
Create a new effect "Stat Limit" with the following attributes:
- Max Protection changed to a value of -1
- Tag: clearable_debuff (meaning it can be dispelled)
- Tag: countable_debuff (so it does count towards abilities that are impacted by number of debuffs)
- Tag: shield_disruption_debuff (used later...)
- Effect expires on death, encounter end, or 2 Full turns
Go through potency/tenacity check (note "context returned" text includes "if effect succeeded in applying")
If success, apply the effect to the target (this should make the target lose all protection and (I think, but am not positive) bonus protection)
Part C (Apply Immunity)
This is intended to "tag along with" Part B, which is why this effect is not resistible. If Part B succeeds, Part C always happens. If Part B does not succeed then Part C always fails. It is set-up this way so you don't end up with a situation were only half of the ability text applies or does not apply, which could happen if you had two independent potency/tenacity checks. It's all or nothing. The "shield_disruption_immunity" is the name of this effect; I think this is checked at the top so that the effect is not reapplied if the target already had it.
Find the Target
Check that the target had the debuff in Part B applied, and if it did:
Apply Immunity to "shield_buff" effects (aka Protection Up)
Apply Immunity to "bonus_max_protection" effects (aka Bonus Protection)
These effects expire when the Part B debuff expires