I think your problem is that you introduced a second emitter1:
Emitter emitter1;
Ptr<Emitter> emitter = CreateObject<Emitter> ();
and you are mixing the scheduling operations on these two objects:
Simulator::Schedule (Seconds (0.0), &Emitter::Initialize, emitter);
Simulator::Schedule (Seconds (1.0), &Emitter::Count2, &emitter1,
Seconds (1.0));
Emitter1 will probably not work right because it is not being
initialized, and it is not being created by CreateObject(), which means
that it may end up not being fully formed.
Try using CreateObject<>() to create it, and try to initialize it, and
it ought to work.