Change your FOR loop condition. Theoretically, it will throw out of range exception.
for (int i = chars.Count - 1; i > 0; i++)
chars [i].transform.position = chars [i - 1].transform.position;
I believe your intent should be
for (int i = chars.Count - 1; i > 0; i--)