I've noticed that changing the cost and improvement scaling does not work as I expected.
The improvement scale is delayed by 1 level (e.g. with improvement set to 0.1 improvementScale set to 1.2, the upgrades are +10%, +20%, +32%, etc.), while the cost scale adds the new science cost, rather than set it, and is also delayed by 1 level (e.g. with scienceCost set to 100 and costScale set to 5, the prices are 100, 200, 700 etc.).
This can be fixed by removing the offset in i, and using = rather than += for the cost, as shown below.
465 else factor += baseImprovement * (float)Math.Pow(improvementScale, i);
478 else cost = baseCost * (float) Math.Pow(costScale, i);
This will not change anything with the default configs, instead making custom settings work as one might expect.