How would i go about a push and an equip function for this?

First of all, if you’re going to use push, which is an array method, you want $head to be an array:

<<set $head to []>>

Then you add new elements with <<set $head.push()>>

<<set $head.push({
	    gear: "Leather Cap",
        details: {
        	equipped: false,
        	description: "A gift from side character A",
        	stats: "<<set $armor +=1>>",
        	undostats: "<<set $armor -=1>>"
            }
})>>

That said, if the stats don’t change throughout the game, it’s best to use the setup object instead of story variables, as Greyelf explained here.