EDIT:
Try changing the value with cheat engine, make sure the string ends with null character in memory,
if that doesn't work, read below
Of course some characters are missing, your string is writting where it shouldn't. The correct way to do this is to replace the value of the pointers to that string not the value itself.
This is a c++ code to show what i mean.
Code:
//original value at address X
char ip[] = "127.0.0.1";
//some pointer to the value (should find the pointer or pointers with CE)
char *pip = ip;
printf("pointer points to address: %X \n", &ip);
//replace string
char replace[] = "123.4.5.6.7.8.9";
printf("Replace address is at %X\n", &replace);
printf("Current value: %s\n", pip);
system("pause");
//replace target pointer with replace string address
pip = replace;
printf("Current value: %s\n", pip);
system("pause");