Please correct me if I am wrong, but I thought the MAC address is unique and is assigned by the manufacturer.
Correct(ish). The manufacturer will have assigned a MAC to it.
If I can change it, then it is not longer a unique value since I can be assigning it an address that some other hardware or device have.
Then assign one that is not in use on your network (it's only per-network that matters). You can usually(?) assign MAC addresses to interfaces as that is needed for High Availability switchovers.[/quote]
However, can you elaborate on your comments that the mac address is an environment variable of the u-boot?
It's also settable in the interface config (which would cure your DHCP issues without needing to get to the boot environment). Just add a line like this (with a suitable MAC) to the relevant interface sections in /etc/network/interfaces.
hwaddress ether 00:50:43:01:ff:0d