It may take a bit of time. Be patient. Keep trying. You can try the tiny scunchies from the 'Dollar' stores. If you don't get the topknot in on the first try, just pull all the loops up together and it will slide right off so you can try again. Also, with the tiny scunchies, there should not be breakage if Winnie does manage to 'scratch' or 'rub' out the topknot. You can wash and re-use them, too, and use multple colors at once. I use 2 colors most of the time, sometimes 3 scunchies, all different colors, to match their outfits.
Also, I found an infant head pillow for use in car seats. It has cute faces on both ends. I tried using it, because it was a perfect topknot sized neck pillow, but Brody considered it 'one of his toys.

Fortunately, both he and I were pretty good at putting his hair up by then and we didn't need or use it.

Now, he is super good and very still, and it only takes a second to put his hair up...all three of my Yorkies are that good, too, and he gets a regular tiny band when he gets a bow...when I can be with him the whole time...but the rest of the time, he gets tiny schunchies, but, regardless, he always gets a topknot.
Good luck! You and Winnie will get there!