Thanks Redrobes, I'll give that a try. After some experimentation I got the results below and I think this is a basic version of what you were saying done a different way.
The tiles on the left just have a slight blur at the edges based on Torstan's suggestion - although I probably overdid them.
The tiles on the right were done by taking a copy of each set of tiles to the right of it, pasting it over the set to the left, then using a layer mask with a black to white gradient to allow it to gradually fade in over the width of the tile.
Still needs some work around the edges (blurring the edges of the gradient possibly, or adding some noise), but it's starting to look promising.
If I go with this approach I'll have to include a "precedence" value on the textures so the code knows which would be overlapped onto which and 3 (or more) way overlaps could still be tricky. Would like to experiment more with only overlapping them by 50% etc.
Part of the challenge is that while I have a lot of flexibility in ImageMagick, it is just being used to prototype this - the actual game client has limited rendering capabilities. It does have the ability to lay one image over another using an alpha mask though, so using either your blur approach or continuing with this gradient idea I could include a few masks in the client for this type of thing.
One interesting approach I did see on a gaming forum was to have a base texture in an area. For example, a forest might have a forest floor texture and only ever have transitions from that to other textures.
By the way, I did a lot of googling on this and there were lots of questions with not too many answers, so I'll keep posting results as I make changes.
With that in mind, does it make sense to ask a mod to move this to WIP rather than a question in the general forum?