You are falling over the javascript feature that objects and arrays are referenced, effectively, by using pointers. So when you say flow.set("Chart" + flow_names[i], newmsg)
you are actually saving a pointer to newmsg. Then when you do the same for the next flow, it is also saving a pointer to the same array.
Later if you change the contents of that array then, since all the context vars are pointing to the same array, you will change all of them.
The solution is make a new copy of the array when you initialise the context var.
By the way, I suggest not using variable names like newmsg unless they are actually messages. Otherwise at some point you will think you can return that at the end of a function node, and it will fail.