Code level differences like that should really only be run for a minimum of time. Enough time to know everything's working, then update the other node to match. If not, fail back and restore the secondary to the working version. You will find that the closer the two nodes in the cluster are to each other (hardware, software, etc) the happier your cluster will be.
The interface will respond with the interface MAC for ARP for the interface address. The unit that is CARP master will respond with the CARP MAC for the CARP VIP address. The ARP request will be for one IP address or the other.
When you're looking at the ARP traffic, you see a WHO HAS X.X.X.X IP address. Only the MAC address that has that actual IP address will respond.
Need more details about what you're really seeing, like specific IP addresses, MAC addresses, and probably packet captures showing what you're seeing to be of any sort of assistance. Both nodes please.
And so we all are talking about the same things let's use the same terminology:
Primary - the node that is usually Master and sends its config XMLRPC Sync to the other node.
Secondary - the node that is usually Backup and does not send config XMLRPC sync to the other node.
Master - the node that is currently CARP master
Backup - the node that is currently CARP backup.