Scaling faces with drivers
I think the easiest thing for you to get this working is to do the following: 


Separate all of the individual faces into their own objects.
Reset the origins of each face to their natural median point.
Parent all faces to another empty to make it easy to manipulate as a whole (move / rotate / etc...)


This step didn't work out all that well.

Change the driver on each object to calculate the distance between itself and the original empty you have shown.


I've included a file that demonstrates these instructions.



Here's the results:





Also for mass reproduction of the faces...




Make the driver work on a single face.
Alt + D duplicates with links, which preserves the driver data on the duplicated face