I think I might know what the problem is, but I’m not sure how to get around it.
I counted 21 different sizes, 47 different font colors, and 5 additional customizations. This would create 4,830 different variations, which could cause multiple timeouts while creating the variations and pricing them. You might not even know it’s timing out unless you have access to your system debug.log. (I’m still testing this, but wanted to get back to you since the testing is taking so long.)
Unfortunately, Markup by Attribute requires all variations to exist in the database. This is how it was designed and works well for people with up to a few hundred variations. There are pros and cons of this approach, and, obviously, the fact that it won’t work on a few thousand variations is a ‘con’. 🙁
I can only think of two approaches to correct this problem. The first is to use a different plugin; one that updates the price at checkout and doesn’t require you to create every possible variation. I can’t recommend any because I’ve never used any others. I’m sure WooCommerce has one (for a price, of course).
The other approach, if you want to continue using Markup by Attribute, would be to break the product into multiple products. For instance, regular, glitter, and metallic fonts could be separate products. Then you would just set the base price for the metallic and glitter $1 and $2 higher, respectively, and would not include a markup on the attribute. In fact, I’d recommend making regular, metallic, and glitter fonts different global attributes if you were going to go this route. Of course, then you’d have to change every product that uses these fonts, which may also be an issue.
Sorry I couldn’t give you a simple answer.