A quick thanks to Digitalfragment for confirming that the obvious ratio solution for dealing with objects changing in size was indeed the right way to go. I was second guessing the formula I was using and the whole technique in general but it turned out I just had to stick to it and work out what was missing. It's good to bounce things off of someone from time to time to make sure you're on the right path.
A more extensive bit of rambling about the project can be found in the dev notes on my website here.
Latest build here.
General instructions can be found here.