Not sure if anybody figured this out altready but i was faced with this issue myself and was finally able to find a solution, so basically the problem is that you are trying to change the color for all the vertex of an empty space (because most likelly than not your link is composed of 2 or more words), so what you have to do while iterating is check wether or not the current character is an empty space, and skip it if it is
//The for that loops through your link text
for (int i = 0; i < wInfo.linkTextLength; i++)
{
//get the current character
char currentCharacter = m_TextMeshPro.textInfo.characterInfo[characterIndex].character;
//Skip if it's an empty space
if (currentCharacter == ' ') continue;
//the rest of your color/tint chaning logic goes here
}