Brett,
I have had similar issues with icons in the past also. (I'm sure
everyone has, don't feel like the Lone Stranger out there!)
Nothing is "saved" in the .kml except the specific code that you see
in it.
Local references to files will break as soon as you try to use the
file from a web server, because it doesn't know where your local drive
is anymore.
Most often, the problem falls into one of these types:
Path - make sure that the location, and file name, of the icons
specified in your code is spelled correctly and IN THE SAME CASE as
the actual location
You know that the full web path to the icon must be specified in
your .kml?
Here is an example:
---
<Icon>
<href>
http://steamboat3d.com/files/t0010/green_orb_03.png</
href>
</Icon>
---
Permissions - Check the read/execute permissions on the icon (and all)
files on the server.
Sometimes read is not enough. Try setting them all to 755 permissions,
that's usually pretty safe.
Sometimes you have to even check the permissions on the directory that
they are in as well.
CAREFUL not to make permissions too loose, this can present security
hazards!
Really careful webmasters will not approve of using permissions
greater than 644 on most files, and they are correct that "less is
safer".
Cache - cache on browser, and on a CMS product on the server can
really bite you.
Make sure, when testing changes, to clear the CMS cache (if any), and
the browser cache also.
A cache-clearing plugin utility speeds this up on your browser.
It adds time and sometimes frustration to the testing cycle, but it
happens.
Sure hope this helps, good luck with it!
Regards,
ixboat