Drupal 5.23 is no longer supported, hence the "won't fix", but I'm posting this to help anyone else who is searching for a solution.

After upgrading PHP to 5.4 or later (possibly 5.3 or later, untested), the error "Illegal string offset" appears and references tablesort.inc.

On line 110 in my version (function tablesort_cell) the fix is to check if each array/key combo is set before using it:
From:

if (isset($header[$i]) && $header[$i]['data'] == $ts['name'] && $header[$i]['field']) { 

To:

if (isset($header[$i]) && isset($header[$i]['data']) && $header[$i]['data'] == $ts['name'] &&  isset($header[$i]['field']) && $header[$i]['field']) {