The most likely culprits are
Vacuum leaks
Throttle or choke cables dirty, corroded, unlubricated
Clogged pilot circuits in the carburetors
Vacuum leaks can come from either end of each hose, plus from the devices connected to them . For example, if the valve that controls the PAIR system has a torn diaphragm, the vacuum hose will introduce additional air into that carburetor, causing a lean condition. The carb holders and intake boots must also seal perfectly. Have you checked the condition of the air filter?
The pilot circuits in the carbs consist of several tiny passageways that are easily clogged. If the person who cleaned the carbs did not carefully check each and every one of them, they can still be clogged, even after ultra sonic cleaning. An E string from a guitar does a nice job of clearing them. Sometimes an amateur carb cleaner will try to compensate for clogged pilot passageways by turning the idle mixture screws too far out and raising the idle so that the carbs are pulling some fuel from the main jets at idle. This creates all sorts of crazy behavior, like really wild rpm when the choke or enrichener is used.
The cables need to operate very smoothly, without any hesitation, or tight spots. Cable Life makes a really nice tool for this, and it is cheap. Z1Enterprises sells it.
www.z1enterprises.com/yamaha-xs650-cable...ubrication-tool.html