Strange behavior storing objects on an array

Learn to use c char array strings and the string.h functions when working in small memory environments.
C++ String Objects are waste-y and hog cycles. Buffered-strings and pointers are definite and direct.
You know pointers?

Classes are okay but dynamic allocation in AVR-tight memory is asking for trouble. Set up buffers and work with those through pointers. Allocate once rather than repeated allocate-deallocate and your loop() will run a bit faster.