I don’t understand the disagreement. Words always change there meaning over time, and have different meanings to different people, and there will always be a difference between the original word and the evolved word.
By most accounts (but certainly not all), the word 'gringo' was first used by Mexicans to describe white Americans, during the early to mid 1800s. While there are different accounts as the derivation of the word, the explanation I like best is that it came from Santa Ana’s men listening to the men in the Alamo singing, “Green grow the lilacs”.
As the terminology spread through the rest of Latin American it widened its meaning to include all North Americans. And then over the course of the last 10-20 (give or take), in some LA countries and most Caribbean countries the meaning of the term has grown to cover all those of foreign birth.
I find it interesting and amazing that people are so eager to fight over the ever-changing meanings of words. Language is alive and dynamic, and words are constantly being created and evolving, as they migrate from one set of circumstances to another.
Compare the dictionaries of today with those of 20 or 30 years ago, and you will find several things to be true.
The most obvious thing you will notice is that there are vast numbers of new words being added to the dictionaries all the time, many hundreds every year.
Secondly you'll see that the first definition of many words seldom remains constant. Often the first definition quickly moves to third, or even fourth, in a matter of just a few years. Sometimes the definitions might reverse themselves, and gradually make their way back to number one.
And you will also see that it is not only the words themselves that evolve. While it is not as frequent, the pronunciation of certain words also change over time, as well.
'Gringo', like many other words, had a start at a certain place and time, it has evolved through usage, time and various cultures, and its meaning will continue to morph until such time it is no longer needed.