You are running into a problem with the port-channel hash algorithm. To the switch, the port-channel is now the interface, not the physical interfaces, and which physical interface is used is up to the hash algorithm. The algorithm you are using is apparently giving you a different interface at different times. You probably use one that takes into account the source address, too.
Also, the algorithm may cause you to need to change the link where a radio connects if the hash is going to send the traffic for a MAC address out the opposite link, or you may need to change the MAC addresses on your radios.
You can try to change the algorithm to see if that fixes your problem.
Understanding EtherChannel Load Balancing and Redundancy on Catalyst Switches:
Catalyst 3750/3560
The Catalyst 3750/3560 series switch can support up to eight
compatibly configured Ethernet interfaces in an EtherChannel. The
EtherChannel provides full-duplex bandwidth up to 800 Mbps (Fast
EtherChannel) or 8 Gbps (Gigabit EtherChannel) between your switch and
another switch or host. With Cisco IOS Software Release 12.2(20)SE and
earlier, the number of EtherChannels has a limit of 12. With Cisco IOS
Software Release 12.2(25)SE and later, the number of EtherChannels has
a limit of 48.
EtherChannel balances the traffic load across the links in a channel
through the reduction of part of the binary pattern that the addresses
in the frame form to a numerical value that selects one of the links
in the channel. EtherChannel load balancing can use MAC addresses or
IP addresses, source or destination addresses, or both source and
destination addresses. The mode applies to all EtherChannels that are
configured on the switch. You configure the load balancing and
forwarding method with use of the port-channel load-balance {dst-ip
| dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac} global
configuration command.
You can find out which interface is used in the EtherChannel to
forward traffic based on the load balancing method. The command for
this determination is test etherchannel load-balance interface
port-channel number {ip | mac} [source_ip_add |
source_mac_add] [dest_ip_add | dest_mac_add].
While what you are doing may work for the traffic, it is a very bad idea. Trying to run a port channel across links that changes speed on the link can cause problems.