Like many of the rest, I am hesitant to poke a bunch of holes in my bonnets, tams, or what have you. I have a couple of badges which are actually poked through the material, but mostly I have used the cockade as a means of mounting. I poke the holes in the cockade or just pin the badge to the outside of the cockade to avoid poking any holes at all.

Puffer gives you the right idea, and I have used almost all of his methods. A stitch of thread passed around the badge into the bonnet will hold it tight to the bonnet so that it appears to be properly mounted.