material.diffuseTexture
is of type BaseTexture, and I can only assume you have made the right decision and are using typescript Which is the main issue here (or better - it is the difference between the playground and your code).
The properties are there, since you have defined the diffuseTexture yourself), but typescript doesn’t recognize them.
What you can do is change the uScale of the texture you have created and not of the assigned diffuseTexture. something like this:
const texture = new Texture(....)
texture.uScale - 2
mat1.diffuseTexture = texture;