Hello, I've been struggling with that issue for a long time.
Usually, i would start by rigidly drawing the lines between the bricks. From there I'd start shading the blocks one by one, running into exactly the same problems that you do.
Some time ago I accidentally stumbled upon a method that has helped me a lot. I thrown together a quick mockup to illustrate.
#1 Rather than starting with the lines, you start with a blank canvas and loosely paint the tiles on. Don't be to nazi at here, the purpose is not to make a mathematically perfect grid.
#2 Clean it up a bit and make sure it tiles well
#3 Start sketching defining the individual blocks, popping in and out
#4 Pimp it!
#5 Offset it by 50% on both axis and pimp it again. Now, we have a base tile (you should clean it up more than I did).
#6 The irony with tiling work is that the more detail you put into that single tile, the more it will look tiled.
In order for this to look decent, we have to make a variation tile. Here, I just copy the finished tile and mixed it up (without touching the borders so I don't fuck up tiling)
The 3x3 grid is made up by these two finished tiles.
Really, I don't know if it's just me or what, but I find step #1 to be really important. When I start with lines, I tend to become a slave of them and that really hurts my pixeling.
Hope you can use it, keep up the good work,
Cheers
edit: Whoops, I made my grid 40x40, it's prob. gonna be harder to pull of at 32x32