On lightweight knits the pin will always win unless you give it a denser layer to bite into. What I do is sew a small strip of grosgrain ribbon or a scrap of felt to the wrong side where the closure sits, just at the overlap, using regular sewing thread and tiny whip stitches. The pin goes through the knit plus the ribbon underneath, and it stops stretching the stitches out because the ribbon takes the strain. It's completely invisible once the pin is on. The other trick that works well on little garments is anchoring the pin permanently instead of relying on the clasp. Thread a needle with matching yarn, pass it through the pin's coil or hinge area, and stitch it down to the cloak in a couple of spots, leaving just the pin end free to swing open and closed. Then the clasp can't pop open at all because it's basicly decorative at that point and the stitching holds everything. This is how a lot of vintage brooches were attached to garments anyway, so it reads as authentic rather than a workaround.
If you'd rather keep the pin fully removable, try catching the two legs of a single stitch instead of weaving between rows. Weaving through two rows is what's stretching things open, one snug stitch with a backing strip holds much better. A tiny buttonhole stitched at the spot the pin passes through also helps, since the edge won't ladder.
I wouldn't bother reknitting that section tighter. You'd need a pretty big jump in gauge to make thin yarn grippy, and it would change the drape of the cloak, which is half its charm on a traveler. Adding the hidden strip keeps the fabric looking the same from the outside.
One last thought, since he gets moved around for photos: a dot of fabric glue on the ribbon strip behind the pin's resting spot keeps it from migrating sideways without touching the knit at all. Frozwald's cloak will stay put through any adventure you stage for him.