Modifying the Properties of Values within an Array

From a coding standpoint, which do you think would work better? From what I've read, it seems like the shift register is the way to go, but I have no idea what I'm doing in regards to shift registers, whereas with multiplexing, which is how I currently have it wired, I'm not sure how to alternate the number as well as the digit fast enough (from a coding standpoint, how to keep looping through the digits while keeping them on their respective number display), while changing those values from time to time.

I feel like this whole thing would be much easier if I just switched to an LCD panel and output the numbers there instead, which is a viable solution in my project. Would it make more sense, if I'm drawing values from an existing function, to simply display those values on an LCD display, rather than trying to force this 4-digit display to work?