This ‘thing’ took about 30 minutes to figure out. According to the WEKA documentation, if you add a new Instance to an existing Instances object, String values are not transferred ! In case you are working on copying a dataset with a string attribute, you need to transfer the string manually. The code segment below copies the i^th instance from source to dest where the first attribute (at index 0) is a string attribute.
dest.add(source.instance(i)); dest.instance(dest.numInstances()-1) .setValue(0,source.instance(i).toString(0));
This should come in handy for text classification using WEKA (and hopefully save your time).