Thank you for posting this, as I spent hours trying to figure out why an external DHCP server could not get packets back to a wifi client. I found the Cisco switch would send DHCP Offer/ACK packets, but they were not passing through the wifi client.
I googled that issue specifically, along with the "5 minutes" and came across the bridge ageing information that solved your issue.
Lowing the bridge ageing time solved my issue as well.
This is only an issue with an external DHCP server when roaming, I have these same units at home using the internal DHCP server, and roaming is not an issue.
This is also only an issue with newer versions of OpenWRT. I have Chaos Calmer 15.05, and it does not exhibit this problem.
In case this helps anyone else, I also have 8 vlans (8-15) and do 802.1q tagging, so I ended up running the following script on a 1 minute cron timer, which changes the LAN bridge as well as all 8 wifi bridges, to an ageing time of 10 seconds with an STP forward delay of 0.01 (yes, STP is disabled, but I'm paranoid that might also be a problem):
~!/bin/sh
if [[ -d /sys/class/net/br-lan ]]; then brctl setfd br-lan 0.01; brctl setageing br-lan 10; fi
if [[ -d /sys/class/net/br-vlan8 ]]; then brctl setfd br-vlan8 0.01; brctl setageing br-vlan8 10; fi
if [[ -d /sys/class/net/br-vlan9 ]]; then brctl setfd br-vlan9 0.01; brctl setageing br-vlan9 10; fi
if [[ -d /sys/class/net/br-vlan10 ]]; then brctl setfd br-vlan10 0.01; brctl setageing br-vlan10 10; fi
if [[ -d /sys/class/net/br-vlan11 ]]; then brctl setfd br-vlan11 0.01; brctl setageing br-vlan11 10; fi
if [[ -d /sys/class/net/br-vlan12 ]]; then brctl setfd br-vlan12 0.01; brctl setageing br-vlan12 10; fi
if [[ -d /sys/class/net/br-vlan13 ]]; then brctl setfd br-vlan13 0.01; brctl setageing br-vlan13 10; fi
if [[ -d /sys/class/net/br-vlan14 ]]; then brctl setfd br-vlan14 0.01; brctl setageing br-vlan14 10; fi
if [[ -d /sys/class/net/br-vlan15 ]]; then brctl setfd br-vlan15 0.01; brctl setageing br-vlan15 10; fi