You are welcome. Not sure if you notice the different of initializing text and my code for updating the text.
Initializating text (your original code) is invoked on DynamicTexture. It is a BABYLON API. I believe underlying it updates the 2D canvas used as texture.
textureGround.drawText("complexity", 75, 135, font, "white", "transparent", true, true);
The text update call I added was the following. It is invoked directly on the 2D canvas.
textureContext.fillText(stanza[wordCounter], 75, 135);
So basically, BABYLON DynamicTexture is using the content on the 2D canvas ‘textureContext’ and applies it on the mesh (the plane mesh variable ‘ground’ you created).
Now to update the content, you only need to update the 2D canvas as I showed by calling fillText method. This 2D canvas context is of type CanvasRenderingContext2D. It is standard HTML5 canvas directly supported by modern browser. It has nothing to do BABYLON. You can find all the available API functions you can use: CanvasRenderingContext2D - Web APIs | MDN
Changing text styles is described in this section: Text styles
You can also search for html5 canvas there should be plenty examples and tutorials online.