Your variable $maturDate1 is a node-set containing 5 element nodes.
In XSLT 1.0, when you apply the substring() function to a set of 5 nodes, it operates on the first of those nodes (2.0 would give you a type error instead).
I think you simply want:
<xsl:variable name="maturYear" select="number(substring(.,1,4))+5"/>
<xsl:value-of select="concat($maturYear,substring(., 5, 4))"/>
The global variable isn't useful.
Note, your date arithmetic is capable of generating an invalid date like 20090229. Using the date/time arithmetic provided in XSLT 2.0 would be more sound.