The thing to do is to not allow her to be so picky. She needs to learn to eat what you give her when you give it to her. At feeding time, put her bowl of food down and leave it for about 15-20 minutes. If she doesn't eat it or only eats a tiny bit and then walks away, pick the bowl up and offer it to her again a couple of hours later. If she doesn't eat again, do the same thing. A healthy dog will not starve itself. Constantly changing foods or adding things like wet food can easily turn any dog into a fussy eater. I would also cut out the treats until she starts doing a good job of eating her dry food on a regular basis.
As far as her weight, since she is a mix, it is hard to know if 30 pounds is her ideal weight. It totally depends on what other breed she is mixed with.