Thus, I can now take a grid (as well as row or column) such as:
and it'll fill in the gaps by computing what the neighbouring texel should actually be:
It looks a bit odd/wrong, but it does actually work. The engine code is designed to address the 30x30 pixel areas that you can clearly see in the first image - but the border texels actually need to wrap around and address the opposite edge/corner.
The algorithm I made quite simply copies the opposite pixels across. The top edge is a copy of the bottom edge, the top-left corner is a copy of the bottom-right corner etc..
I'm going to go have a stab at getting it to stream properties from an XML file via TinyXML. With that done the tileset loading should be sorted - yay!