SearchString.toCharArray(StartHere,charsize);
StartHere is an array of char variables. How would you go about printing (to the LCD) the 1st 16 of those 1 at a time? And then the next 16?
Or you could torture yourself and your code by setting up extra smaller char arrays then put 16 chars in one and the rest in the next and call that efficient or (Apple-talk) "elegant" while in fact it would be neither.
Given your C++ String class use, I'd say your next probable problem will show up not long after you fix this one. That problem is the incompatibility between Arduino RAM limit and the C++ String class written to take advantage of computers having lots and lots of RAM.