cant say why it doesnt work when it highlights, maybe the attributes change somehow and you would need to track that change to only the use min attritubtes which uniquely identify and dont change.
For long delays, how java apps/webpage spying works is that it creates a heirarchical structure of the elememtns and then searches through it. In case of java based applications this structure may be quite big, depending on how the application is built. So for any action first BP would search the element. I have seen this search take a long time in some cases. Problem is even if you add a wait for element with a certain timeout (say x secs). BP would first search for the element which may take y secs, then apply the timeout (x secs), so overall the time increases to x+y secs, which may be too long.
Always do an initial application assessment, and in case these issues are encountered, SA (or anyother spying which works), needs to be kept as an option.