Personally I think the less you have happening in the WinPRoc more chance you have of this working.
Thus I would not have this "SetForegroundWindow Application.hWndAccessApp" being fired everytime.
Also this is going to mean that during the whole time that the ballon is visible the access application and thus NOT the form will have focus. You see this cause the form is out of action but if you put your mouse over access icons at the time they all respond to the mouseover event and highlight.
I really think you should not use the access or form handle but create a window with the API that is invisible. Use this handle. Then set focus to the handle of the FORM once and you are good to go.