I was having the exact same problem these days after updating Kali. Before updating/upgrading the system through its repositories, macchanger was working like a charm, but after the update, everytime I attempted to change the MAC addres of my interface and connect into a network, it was automatically reverting it to, or its permanent MAC address, or a random one, randomly.
At first, I was not sure about what could be possibly causing it, but after doing some tests, using different devices with distinct configurations and trying various tools in different orders, I found out that the issue was being originated by NetworkManager, what I realized later being not an issue exactly, but just a different default configuration of the service than the one we were used to.
The lastest versions of NetworkManager, 1.4.2, in this particular case, implement several configuration options for MAC spoofing/cloning, and when put in use, these options tend to override any configurations set by tools like macchanger and macchito, making them useless. It turns out that, in its newer versions (above 1.4.0, mainly), NetworkManager default configurations are set to randomize your MAC address or revert it to the permanent one on the moment your device scan the networks around you or attempt to connect into one of them. This new feature is very interesting for purposes of anonymity; for MAC spoofing, however, it can complicate your authentication attempts, if you have no knowledge about it.
Disabling this feature is very simple, you'll need to change NetworkManager's configurations. You can do this either by editing /etc/NetworkManager/NetworkManager.conf file or adding an additional .conf file to /etc/NetworkManager/conf.d directory (the .conf file can have any name). Though I highly recommend the second option, given that when updated, NetworkManager usually replaces its main .conf file, and if you choose the first option, your saved options may be overriten when the service gets these updates from time to time.
Whatever option you choose, in the text editor, add the following lines:
Code:
[device]
wifi.scan-rand-mac-address=no
[connection]
ethernet.cloned-mac-address=preserve
wifi.cloned-mac-address=preserve
And it's done, the problem now should have been resolved.
If you want more on how can you configure NetworkManager in its newer versions by yourself, I recommend reading the following article, it was the one that helped into solving this:
https://blogs.gnome.org/thaller/2016...manager-1-4-0/
th3_z3r0