The API definition for the vex::controller::lcd.print() is very unfortunate.
There is a templated definition that accepts about anything and tries to format it as one of the number kinds, then there is an explicit specialization for const char *:
template <class T>
void print( T value ) { .. }
void print( const char *format, ... );
When you, for whatever reason try to call print with (non-const) char *, the compiler will reject the specialization, try the template variant for double and emit a cryptic (to the target audience at least) error message.
Adding an extra specialization for char* should help.
Test case:
char buffer[50];
Controller1.Screen.print(buffer);