Through some trial and error experimentation I figured out why I couldn't get the pixel clock I wanted. By reading the DPI clock control registers I observed that for low frequencies, such as the 6Mhzish clock I was aiming for, the OSC is used, which is 19.2 Mhz. However, the boot code seems to only set the integer divider, not the fractional, meaning that only frequencies such as 9.6Mhz, 6.4Mhz, 4.8Mhz, etc work. So if the requested clock is not an even divisor, the DPI does not seem to be configured at all.
Fortunately the TFT display I am connecting to the DPI interface allows me to configure the pixel timings, so I was able to get it to work at 60fps with a DPI acceptable clock. I have full frame rate video playback on a 240x320 ( yes, portrait ) display.