You could just get a regular led driver IC with 16 / 24 / 28 / 32 / 36 / more separate channels and use a tiny micro (8-10 pin pic that's less than 0.5$) to act as an in-between converting your 16 bytes (or however you want to send the data about segments) into the segments which have to be turned on or not... besides this you'd only need a bunch of cheap mosfets or transistors to enable power to groups of leds at a time (because you'll only have a few digits turned on at any point)
or could just have 3-4 led drivers on the same i2c bus, each with its own address, and have a small micro to send segment data to each, but this way you're getting to around 6$ in driver chips so it's not much saving.
for example
IS31FL3235A has 28 channels and it's <2$ in quantity (1.5$ if you get 100) ... that's enough for 4 digits of 7 segments , so you could use either 4 of these each with it's own i2c address, or just multiplex digits, as you have 4 groups of 4 digits.
Would work great if you have ready made 4 digit 7 segment common anode displays.