hi Struan Bickerton
Welcome to the forum.
There's a lot of factors there to consider but all should be achievable.
The 'negative' weighting factor for price / sq m between limits could be achieved by a suitable function, maybe a straight line variation or even something more complicated. Or you could create a 'look-up table' for weighting factors.
In your position, I'd load up my spreadsheet software and create a sheet that will do all the calculations. Do you have such a program?
If so, you could start by entering in two columns a list of lengths and widths, then a column for unweighted cost just based on area, then invent a column for how much you'd like to weight that charge for different areas. Faced with those figures I could look at what weighting would work.