Hi have similar problem on some client ... I put this script on my AP to Log ack-timeout over 100 !
My AP log remote to a syslog server, so it's easy to grep in the message log on the server to see problem on all AP
/system script
add name=ack_log policy=ftp,reboot,read,write,policy,test,winbox,password,sniff source=":foreach i in=[ /int wir reg find ap=no] do={\r\
\n:if ([int wir reg get \$i ack-timeout] > 100) do={\r\
\n:log info (\"=== ACK-TIMEOUT HIGH === Mikrotik \" . [/system identity get name] . \" AP: \" . [int wir reg get \$i interface] . \" MAC: \" . [int wir reg get \$i mac-address \
] . \" ACT-Timeout: \" . [int wir reg get \$i ack-timeout] )\r\
\n:}}"
/system scheduler
add comment="" disabled=no interval=1h name=ack_timeout_log on-event=ack_log policy=read,write,test start-time=startup