I don't know enough about how PHP handles this sort of thing to understand what's going wrong, but this code crashes krumo:
$o = new StdClass; $o->array = array(1, 3, 4); $o->p = 'property'; dpm($o); $a = (array) $o; $a['array'] = 'foo';
The error is Fatal error: Cannot unset string offsets in /Users/joachim/Sites/transport-drupal/sites/all/modules/devel/krumo/class.krumo.php on line 610
It seems to be getting confused by trying to handle something that's now a string but used to be an array. But like I say, I don't understand what I'm changing in the original $o object -- nothing as far as I can see.
The use case btw is converting an array of synonyms on a term object into a string that can be saved with taxonomy_save_term().