Once again thank you all very, very much for guiding me through this.
Here's what I changed:
- Dropped the executionorder per acidburn's advice
- Made the template phrased because I forgot to the first time

- Removed the search string from the template because I know how it works now (thank you again, acidburn)
- Added Paul's code snippet to add to the global template array
- Added JumpD's code to grab the template from cache
- Changed the hook to forumhome_complete
Things I'm not sure on:
- What/how the template actually gets added to the global templates, unless that's exactly what Paul's code does. I'm assuming that it's basically if you're on the index, then add s_n_t to the cache?
- If I took a step forward here.
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<product productid="chris777_showinvisible" active="1">
<title>Show Invisible Users Online</title>
<description>Will add a count of invisible users in WGO.</description>
<version>1.0.0</version>
<dependencies></dependencies>
<codes></codes>
<templates>
<template name="silly_newbie_template" templatetype="template" username="chris-777" version="1.0.0">
<![CDATA[
<!-- Newbie Template -->
<phrase>$vbphrase[online_invisible]</phrase> $numberinvisible
<!-- /Newbie -->
]]>
</template>
</templates>
<plugins>
<plugin active="1">
<title>Show Invisible in WOL</title>
<hookname>forumhome_complete</hookname>
<phpcode><![CDATA[
if (THIS_SCRIPT == 'index')
{
$globaltemplates[] = 'silly_newbie_template';
}
$search_text = '$vbphrase[x_members_and_y_guests]</phrase>)';
$vbulletin->templatecache['FORUMHOME'] = str_replace($search_text, $search_text.$vbulletin->templatecache['silly_newbie_template'],$vbulletin->templatecache['FORUMHOME']); ]]>
</phpcode>
<phrases>
<phrasetype name="GLOBAL" fieldname="global">
<phrase name="online_invisible">
<![CDATA[ Invisible: ]]>
</phrase>
</phrasetype>
</phrases>
</product>
Again, very much appreciated.

My weekend plan is to get this all sorted out. (Quite the party, I know!)