Having a switch discharge directly a debouncing capacitor is common. You could stick with it, but the circuit has other problems.
Yes, ground the unused data inputs. Even though they are not used internally, they still have active input stages that do *not* like to float.
Bounce: In the original circuit, the debounce R and C are too small. The debounce period is only about 700 microseconds. Increasing both the R and C values should fix this. BUT -
These counters act on a positive edge, which is the trailing (slow) edge of your inputs. You need to reverse the input components so there is a positive edge when the button is pressed, not when it is released. BUT - you are using TTL chips, which require a fairly low impedance path to GND to be seen as a logic low. Try this:
Connect the switch between the count input and Vcc. Connect both the resistor and capacitor to GND. The switch now will make a rapid rising edge to the count input, what it wants to see, and the capacitor will filter out the bounce. The resistor must be small, like 1K for LSTTL and 470 ohms for standard TTL (330 preferred). And the transition level is around 1.8 V, significantly below Vcc/2. These combine to make the debounce capacitor much larger. Start with R=1K and C=100uF for a debounce period of around 50 milliseconds.
This also will have the capacitors hold the count inputs low during power-up, which will help with the 999 problem.
999: The counter increments on a positive-going edge. When power is applied, R5 and R6 apply count edges to both the up and down inputs *after* the power-on reset input has ended. It looks like the down count is coming in last. Increase C3 to 10 uF and increase R1 to 100 K.
I think the real solution to the 999 problem is reversing the input logic polarity explained above. If everything works, try decreasing C3 to 1 uF and then 100 nF and see if everything still works.
ak