Is it overkill to update the text every single frame? You seem to use events a lot, so I would have expected you to create an event or something to handle when text needed to be updated.
Since there are so many grid objects and every single one is updating every frame, it just seems like a waste of resources.