Du kannst nicht im Array-Index von $this->data \1 benutzen. Das \1,\2,\n wird nur geparsed wenn es direkt in dem String steht der an preg_replace übergeben wurde steht. Dein Skript sucht in $this->data nach dem Element mit dem Index '\1'. Das gibts nicht -> es ist leer -> es erscheint nichts im Template.
Du könntest es so machen, dass alle Vorkommnisse von $global durchgegangen und jeweils einzeln ersetzt werden. z.B. so:Ungetestet.