Hey.
Sounds strange.
have you tried debugging arp on the switch?
Check your timer and see how long it is. Wait for the timeout with debugging enabled and check the messages.
>display arp timer aging
Current ARP aging time is 1200 seconds
>
>debugging arp entry
>debugging arp packet
>debugging arp active-ack
>debugging arp fast-reply
>debugging arp error
you should see stuff like
ARP/7/ARP_SEND: Sent an ARP message, operation: 1, sender MAC: <mac-switch>, sender IP: <ip-switch>, target MAC: <mac-host>, target IP: <ip-host>
ARP/7/ARP_RCV: Received an ARP message, operation: 2, sender MAC: <mac-host>, sender IP: <ip-host>, target MAC: <mac-switch>, target IP: <ip-switch>
ARP/7/ARP_ENTRY: ARP entry status changed: MAC address: <mac-host>, IP address: <ip-host>, AGING -> NO_AGE
Regards.