In the vanilla game, Spell Shield is hardcoded to display portrait icon #73 (Protection from Magic Energy). The Fixpack's solution to this predicament is to swap the two spells' portrait icon bams, as well as their strrefs in statdesc.2da, and then to amend PfME accordingly.
But when Kelsey is installed, the changes to PfME are overwritten with Kelsey's own spwi606.spl, rather ancient. As a result, when PfME is cast, the spell references the old icon instead, and the recipient gets Spell Shield slapped across their portrait.
One possible solution would be to copy-paste the Fixpack's patch-code directly into Kelsey's .tp2 file, after all the spell overwrites have taken place. So, you could insert this code...
ACTION_IF (MOD_IS_INSTALLED ~bg2fixpack\setup-bg2fixpack.tp2~ 0) BEGIN
COPY_EXISTING ~spwi606.spl~ ~override~
READ_LONG 0x64 "abil_off"
READ_SHORT 0x68 "abil_num"
READ_LONG 0x6a "fx_off"
FOR (index = 0 ; index < abil_num ; index = index + 1) BEGIN
READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
FOR (index2 = 0 ; index2 < abil_fx_num ; index2 = index2 + 1) BEGIN
READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode"
READ_LONG ("%fx_off%" + 0x08 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "icon"
PATCH_IF (("%opcode%" = 142) AND ("%icon%" = 73)) BEGIN // display old pro-magic energy icon
WRITE_LONG ("%fx_off%" + 0x08 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 123 // change to new pro-magic energy icon
END
END
END
BUT_ONLY_IF_IT_CHANGES
END
... at circa line 582 in Kelsey.tp2. I've tested it and everything looks good. Of course, this is only a stop-gap measure, and doesn't solve the underlying overwrite problem.
I saw in the thread below you were planning on modernising Kelsey sometime, but would you like me to report this to the BiG World folks in the interim? (Not that I'd need to, I suppose. They are quite assiduous.)