Since the characters are mostly neutral colours, they don't pop against the saturated green grass. Adding more colour to the characters and using less saturated colours for the grass would help.
I don't think flatness is a big problem for grass since it's literally fairly flat. However, if you want to make it more fluffy looking, consider using your shadow colour more judiciously - you currently have many dark grass-blade shapes, but how about using that colour as shadow instead? Let the lighter grass blades grow out of the darker base, instead of adding dark shapes.
Another reason the grass looks flat is that it has the same high level of detail throughout. It's difficult to remedy this with a single tile, but consider having variant tiles, some of which have less detail and perhaps a smaller value range.
Scale is another factor to consider. Those "grass" blades are the size of a human arm xP Exaggerated grass is fine and your results look pretty good, but make sure that's a decision you make consciously rather than just because this is the smallest you feel you could make the grass. There are many other approaches, some more realistic, some more cartoony.
Here's one alternative option:
The grass is largely flat, and most of the details are created at the boundaries of the different solid colours. The grass blades here are also on the larger size, but this approach can also work well with 2px-big grass blades without looking too noisy. The different colours can represent different grass types, elevations, or shadows, depending on the context provided by the rest of the scene. This approach makes it easier to mask the grid too, since it's not noticeable when a flat colour is tiled.
Having noisier, fainter grass with tiny grass blades can work well too, if you want a more realistic look. The key with tiny grass is to keep the contrast on the low side, so that the details don't clash with details on the characters and important objects.
Lastly, don't forget that you're probably not going to have huge fields of just grass tiles in your game. There will be objects and other terrain tiles breaking it up. Your tile might look a lot better in that context! This is especially true if your various objects such as trees and things that sit on the grass have little bits of grass that overlap them in their sprites. That'll give the grass a lot of volume without requiring any changes to the base grass tile.