I did a little edit of the grass tiles.
It's not perfect, but I wanted to try to make it a little more tranquil.
I found the palette a little tricky to work with, since it seems fairly random at the moment. I like a bit of hue variation, but there are such huge leaps. I think it could work if applied more sparsely, or toned down a little, but now it seems like it's added for the sake of style more than function.
I'm basically creating patches of various types of tiles, and then scanning through and blending them/changing single tiles based upon adjacent tiles. I still need to expand upon this and make sure things blend in every situation.
I don't really understand your approach. To me, it seems like you're trying to go for single-tile representations of everything, without transition tiles. Is the idea is that a single tile should function as a kind of universal transition tile between two tiles? I don't see how that's doable. I think this has potential, but while you're trying to go for a realistic style, I think what you need is something much more symbolic and simplified. I've seen this approach work well with two-color tiles, but as it is, I think you're trying to cram too much information into the tiles. I think there has to be more tile clusters (like 2x2 tiles) to convey larger elements, like ferns or whatnot, which are currently struggling to fit within their tile spaces without looking cramped.
What are you using to test and edit the tiles? It kind of seems like each tile is drawn to stand on its own, with little regard for the whole. The grid is also very noticeable in places, especially the grass. When you have such small tiles, I think great care has to be put into each pixel placement.
Overall, it seems like the aesthetics have taken a backseat to a somewhat confused approach. It wants to be small in size and simple to generate, but it also wants to convey complex information in a small space. I think you need to pick one or the other.