You are most probably using JFIF for encoding.
I'm not sure how you expect this method to work. If I understand correctly, you're splitting up images into tiles, aggregating them into one mega-image, with "similar" tiles arranged close to each other.
AFAIK, JPEG implementations do a separate DCT per individual 8x8 tile in an image, called a macroblock. Put another way, JPEG cannot take advantage of coherence among neighboring macroblocks (which appears to be the fundamental assumption for your compression technique).
If your own tiles are larger than macroblocks, you will not see any improvement beyond the savings in image header space.
Eg: 10 JPG image headers replaced by 1 will give you a 90% space savings, but only in the header. When you look at the overall file, the header is a small portion of the entire file, so your space savings are meager. When replacing 100 image headers by 1, you save 99%, but again only on the header. In both cases, all macroblocks are still being encoded and stored exactly as before.