You don't give us enough information to go on.
I would turn on user debugging and see in detail what is possibly wrong with the client.
If your client roams too much, that means that the transmit power on your access points is too great.
If you accidentally put a "user any service dhcp permit" is your user role acl, replace that with "any any serice dhcp permit", because that can delay a client reconnecting from getting an ip address.
You need to make sure your dhcp lease time is longer than the user idle timeout, because that can delay a reconnecting client.
I am out of guesses about what could be wrong.