ID:2311695
 
(See the best response by FKI.)
Code:
mob/var/list
equipment = list("Hair" = null, "Headgear" = null,"Head" = null,
"Shirt" = null, "Torso" = null,
"Right Hand" = null, "Left Hand" = null,
"Pants" = null, "Legs" = null, "Feet" = null,
"Accessory 1" = null, "Accessory 2" = null)
Equipment
parent_type = /obj
var
stored_appearance = null
slot_type = ""
equipped = null

show_icon = 1
level_requirement = 0


proc
Equip(mob/m, Equipment/item)
var/slot, list/equipment = m.equipment
if((slot = item.equipped)) //unequip branch
equipment[slot] = null
item.equipped = null
m.overlays -= item.stored_appearance
item.stored_appearance = null
item.overlays -= 'Equipped.dmi'
else
slot = item.slot_type
var/len = length(slot), Equipment/found, slotname
if(text2ascii(slot,len) == 35) //if slot ends in "#"
slot = copytext(slot, 1, len)
var/count = 1
while( (slotname = "[slot][count]") in equipment)
++count
if(!(found = equipment[slotname]))
slot = slotname
slotname = null
break
if(slotname&&count>1)
slot = "[slot][count-1]"
found = equipment[slot]
slotname = null
else if(slotname &&count==1)
return
else
found = equipment[slot]

if(found)
equipment[slot] = null
found.equipped = null
m.overlays -= found.stored_appearance
found.stored_appearance = null
item.overlays -= 'Equipped.dmi'

equipment[slot] = item
item.equipped = slot
m.overlays += (item.stored_appearance = item.appearance)
item.overlays += 'Equipped.dmi'

m.equipment = equipment
m.update_stats()


Problem description:
Everything works up to an extent, there are no issues until the user relogs or logs out or logs in (Only tested on the local-client). You can remove and add the equipment to the overlays but, if you relog once its equipped.You are incapable of removing the overlays from the user, I do not understand why this is the case and have confronted it on the BYOND Discord chat several times. If anyone could shed some light, I'll appreciate it.
Are you saving the player with their overlays as they log out?
That is correct
I'm saving the whole entire mob rather than picking and choosing what to save from the mob.
Best response
Responses stay getting nuked trying to use BYOND + mobile browsing.

Long story short: What it sounds like your problem is, is you are saving the mob's overlays, which results in a "flattening" of their appearance. This means once they log back in, the mob and what were once their overlays/underlays are all one icon. Equipping/un-equipping the equipment that would normally control the additional appearances no longer works at this point.

Ideally I think you want to have a proc that handles updating/refreshing player appearances and call said proc upon character loading.
In response to FKI
If OP would like an example of how to handle overlays/underlays and saving them, take a look at my Foundation demo. I haven't touched it in a long time now, and I would probably add a little more to it at this point, but the concept is still the same.

http://www.byond.com/developer/Spunky_Girl/sp_foundation

Look specifically at the Item System for how equipment is handled (which OP is pretty much on the same page already), and the Saving System (on how to work around the issue at hand).