All right. I've gone through this a little, and I haven't been able to break it really.
There is one small thing though. This really applies to all ships, though it could mean something different in the context of ship templates. If a template that a ship is supposed to use is not found (or hasn't been loaded yet), you will get nothing but a warning and everything will continue. This might result in a ship missing vital data, such as POF file, which will crash the game later. I'm not sure if this is really worth fixing though, as the same would apply to a ship that didn't have any values (like pof file) defined (one that didn't use ship templates).
Otherwise, this code seems pretty stable to me.