One method would be to mark each guess on two criteria:
1) Is the actual weight within their guess?
2) How large an interval does their guess cover?
We could give them a fixed number of points, say 100, for choosing an interval that contains the actual weight, and then divide it by a number proportional to the size of the interval.
For example, we might score the 5 guesses:
1) 100/21 = 4.76
2) 100/26 = 3.85
3) 100/53 = 1.89
4) 0
5) 0
However, this seems a bit unfair on those giving precise guesses. Let's write the guesses in the form $a\pm b$. For example, the first child's guess would be: $80 \pm 10$. Suppose the actual weight is m kg. Then we could choose the mark as $\frac{M}{(b+1)(a-m)^2}$. We can choose M to scale the marks to make them not have too many decimal places. Choosing M=10000 gives the marks as, making 5 the winner:
1) 1.291322314
2) 219.478738
3) 0.020292043
4) 40.31242126
5) 1111.111111
According to this scoring system, the winner is somebody who gave an interval that didn't contain the correct answer. Is this what we want? We could choose M=10000 if the interval contains the correct answer, and M=1000 if it doesn't. This gives:
1) 1.291322314
2) 219.478738
3) 0.002029204
4) 4.031242126
5) 111.1111111
which makes 2 the winner.