UseEDID is definitely the place to start...
X, during startup, runs what is known as mode validation. This is where it uses various sources to compile an exhaustive list of resolutions/refreshes/etc. Then it compares the timings/etc for each mode with a list of rules/restrictions that is compiled from the xorg.conf file, command line options, feedback from the monitor (via EDID), etc - and eliminates any resolutions from the exhaustive list that violate these rules. It then has a "mode pool" of valid resolutions it can use. It then looks at the resolution that is configured and if that is in the valid mode pool, it selects it and starts up.
If for whatever reason the resolution selected was not in the valid mode pool, it will default to 640x480. Turning on EDID can often provide X with more information to expand the valid mode pool and so may then allow it to select the resolution you have selected. Be aware though that many (most even!) consumer TVs supply complete bullshit in their EDID! So it can make things worse, but it is definitely worth a try.
Moreover, it is important to read through the /var/log/Xorg.0.log file as this will tell you where it is failing out. Its a long file, and you need to read it carefully. It may be that the resolution you are trying to select isn't even in the exhaustive list to be checked, and so will probably limit its ability to be selected. Further, once you see the mode being tested in the log file, if it is being rejected, it will also tell you why. You may be able to switch off the modevalidation test (in xorg.conf) that is causing it to be rejected... but be sure that the mode timings used for that mode are valid for your TV first, it may be rejecting it for valid reasons.