I have a similar problem to the issue posted here (gdal2tiles problem).
I have 80 GeoTIFFs (4000x4000) with EPSG:27700 projection embedded and TFW and PRJ files. These I have built into a virtual raster using gdalbuildvrt which creates a 10x10 tile image that is 40000x40000 pixels.
Using gdal2tiles I can create a set of tiles for specific zoom levels. In this case I am using the Ordnance Survey VectorMap District and 25K raster tiles and I want zoom levels 7, 8 and 9. The problem is that zoom levels 8 and 9 work perfectly creating 97969 tiles at zoom level 9 and 24649 tiles at zoom level 8. Zoom level 7 creates the correct number of tiles but the output images consist of a "mini" thumbnail in the top left corner and the rest of the image is transparent/white.
Why does it work for 8 and 9 and not 7? Should I resize the image to fit nicely into 256x256 squares?
See the images attached below: