To a large extent, the roaming performance is a function of the client you're using. If you've got an Aironet 350 client, you can set "scan for a better access point" in ACU to have the client look for an AP while still associated to another. If you have a CB21AG, you can adjust Scan Valid Interval and BSS Aging Interval in Device Manager (the latter should always be set to 2x the former) to get more responsive roaming.
As far as what to do on the AP1200s ... focusing on the 11g domain right now, you definitely need to put the three APs on channels 1,
6 and 11. Their coverage areas should provide a fair amount of overlap. One thing you can do to get quicker roaming, if you have enough coverage, is to disable the lower rates. For example, if each AP's coverage at
11/12 Mbps is sufficent to cover your whole service area, then you can disable the lower rates (1, 2, 5.5, 6).
You can enable WDS without WLSE ... this might help a *little* ... however, with WPA-PSK, I wouldn't think it wouldn't make a big difference.