Are you creating your npcid.pl files and then starting the server from scratch or are you creating the files while in world? I'm not sure how all the experts here are doing it but I found if I booted my client session from the world and then clossed the zone process in which the new quest npc was located that it worked when I started a fresh client and since the quests hadn't been loaded in that process, it loaded it fresh.
Also watch your zone process when your character is loading into the zone. It could also be that you have an error in your perl code. This happened with mine a lot until I realized the sample code I copied from the post had the =~ reversed in the logic and the perl compiler didn't like it.
Just some thoughts....
