“S/he can’t X for toffee” was very common in the UK and I don't think it belonged to any particular region. The expression implies, to me, that you can't do whatever it is well enough even to be given a piece of toffee for it.

I still hear it used but I'm not too sure about the age group using it, it may be falling out of fashion, but perhaps not. Certainly my grandmother used the expression so it has had a good long life.

No proof of the origin, but I suspect that it came from the fairgrounds' habit that became common in the nineteen twenties and thirties, and perhaps before then, of giving a toffee as the minimum prize for simple children's skill challenges. At different skill levels, ages and times it has been a penny or a coconut or, more recently, a goldfish in a water filled polythene bag.