Well shouldn’t be much of a problem to have your fft processing the full range (0 to half samplerate), it’s designed to do this fast. I’m not sure if there’s fft algorithms designed to only look for a specific range (as you often need inverse fft to go back to time domain after).
One important part is that you can of course interpolate bins. So if you take note C2 (65.41Hz), and say you have samplerate of 44100Hz, and FFT Size of 2048.
Bin is 3.0376, so you can take 0.9624 of bin 3 + 0.0376 of bin 4
Also by looking at you patch, spreading stuff would come in handy :)