I think you may be missing something important here.
With your small 3 digit 7 segment display, the display must be multiplexed because only one digit can be illuminated at any instant. So the 3 digits have to be constantly re-drawn, one after the other, over and over, at rapid rate. Otherwise it would simply freeze with only one digit lit.
But your Neopixel display needs no multiplexing. You can draw all 3 digits, once, and then you don't need to draw anything again until the value changes.
Your code seems to be re-drawing the digits over and over, and I imagine this will cause them to flicker very badly. It's also making the code much more complex than it needs to be.