Incorrect/inconsistent frequency readings for clarinet sound

I do not think zero crossing pitch detection is adequate for more complex waveforms. Of course it will work for all schoolbook exapmles of sine, square sawtoth and so on, but i have never seen these waveforms in real life. So i suggest a fft based method. A arduino uno has very little processing power but it can be done, have a look here. A arduino due or a teensy 3 is much better suited to this task though.