The comment from @Malabarba explains your problem.
kill-local-variable does get rid of the local variable binding. But since in your case the variable is automatically local in any buffer, when you reassign it a value, that value is local.
AFAIK, there is no way to counter
make-variable-buffer-local, except to use
unintern on the symbol. (
makunbound does not help.)
If you use unintern then you're OK. But keep in mind that uninterning removes the symbol altogether, so if you used the symbol for something else, besides a variable, then there might be negative consequences.
So the only answer I have is to use
unintern and then reassign the variable whatever value you want - it will be a global value.