Did more testing and there's an issue. If you have a spell in, say slot 1 in spellset 1 and spellset 2 has the same spell in the same slot, the client does not attempt to re-mem it when switching. What this means is that I think the client is sending over info about what it meant to be un-memmed in the EQApplicationPacket.
I will work on this and try to decode the packet and make this work properly. Apologies

Does anyone have any magic ways to decode EQAppicationPacket? If not I'll just dump them out to hex and scratch my head a bit!
Paul.