so... I rewrote your first command so that it is more readable:
/summon Skeleton ~ ~3 ~
{
CustomName:"Enemy",
CustomNameVisible:1,
ArmorItems:
[
{},
{},
{},
{
id:"minecraft:leather_helmet",
Count:1b,
tag:
{
Unbreakable:1,
display:
{
color:0
}
}
}
],
HandItems:
[
{
id:"minecraft:bow",
Count:1b,
tag:
{
Unbreakable:1,
ench:
[
{id:48,lvl:2999}
]
}
},
{
id:"minecraft:totem_of_undying",
Count:1b,
tag:
{
display:
{
Name:"Life",
Lore:["For Another Life"]
}
}
}
],
ArmorDropChances:[0.085F,0.085F,0.085F,0.0F],
HandDropChances:[0.0F,2.0F],
UUIDLeast:0L,UUIDMost:0L,
ActiveEffects:
[
{Id:11,Amplifier:2999,Duration:100,ShowParticles:0b}
]
}
All your brackets are balanced, so that's all fine. I do notice that some of the values don't have a type identifier behind them, which isn't Always necessary, but I usually just do it. It's good practice.
You're summoning the skeleton 3 blocks above the command block. If this location is obstructed by blocks, then no entity can be summoned there.
You give this skeleton both a UUIDLeast of 0 and a UUIDMost of 0
Notice that UUID stands for Unique User ID. This means that every entity needs a unique UUID. You are summoning skeletons with the same UUID, which is not possible.
But further than that, your command looks completely fine.