If someone come across this thread trying to make the suggestion work on a 2023 rAthena codebase, here's how I've made it work:
Assuming you've used this diff from secret (some fixing were needed), the suggested fix above to allow costume-converted items to be equipped will go like this:
pc.cpp
uint8 pc_isequip(map_session_data *sd,int n)
{
struct item equip;
struct item_data *item;
nullpo_retr(ITEM_EQUIP_ACK_FAIL, sd);
equip = sd->inventory.u.items_inventory[n];
item = sd->inventory_data[n];
if(pc_has_permission(sd, PC_PERM_USE_ALL_EQUIPMENT))
return ITEM_EQUIP_ACK_OK;
if(item == NULL)
return ITEM_EQUIP_ACK_FAIL;
//Automatically allow equip if it's a costume-converted headgear
if(equip.card[2] == GetWord(battle_config.reserved_costume_id, 0))
return ITEM_EQUIP_ACK_OK;