As an experiment I tried adjusting the contents of file xample\reports\en\x_person.list.report.inc and changed line 16 from
$structure['title'][] = array('text' => '- Contents of X_PERSON table -',
to
$structure['title'][] = array('text' => '%%last_name',
and it worked perfectly.
I suggest you step through with your debugger to see what is going wrong in your code.
When reading from a database table it is possible in the SQL query to JOIN to other tables to obtain other values, then that data can be handled in the code as if it came from the first table. All you have to do is construct a valid query.