Looks like I have two different issues. I have not gotten to test the cloak staying visible while unquipped yet, but I've added the above as a chat debug command so when I get that to happen again I can see if that fixes it.
The quiver issue turns out to be different. It seems the armor somehow remembers the neck part that is set on the creature. So while wearing an armor (that normally has neck part 1) if I equip the quiver (by equipping arrows) the armor seems to get the quiver but the PC does report neck part 7 with getcreaturebodypart. If I then remove the armor (while keeping the arrows/quiver equipped) the quiver code runs again and detects the PC does not have the quiver (neck part reports 1) and re-adds it. So the neck part which was set to 7 reverted to 1 when the armor was removed.
If I then remove the arrows (quiver goes away and neck part reports 1) and re-equip the armor the quiver neck part returns, yet the PC still reports neck part 1. The quiver code does not think there is a quiver to remove and leaves the it there. So the quiver seems to go with the armor but only partly.
There's some inconsistency here that does not quite make sense to me. Normally using getcreaturebodypart does not return the equipped armor part. But it looks like setting it sets the armor part as well in this case. I've added debug to dump the armor part numbers too so I'll do some more testing before I hack up the code to try to get around this oddness.