Your dog is insecure about going in the yard. That is not uncommon. Dogs can be very strange about where they go. Take the dog out on a leash and walk around in the grass until she goes. Praise her and give her a treat. Do think many times, until she is secure about going in the yard. Currently, the yard feels like a punishment (separation from family and home) and she will not change until you make the experience positive.
Right now, get a poop scoop and pick up all the poop. Wash your porch with vinegar.
ETA: There is no reason WHY, it's just the way it is with some dogs. Just like some people are afraid of butterflies, or something I would cosider silly. It just IS. The fact that she hold it to go in the house, is proof of a very insecure dog. She feels safe there. Dogs go where they feel safe and comfortable. The fact that she doesn't like her leash, also proves an insecure dog. Dogs LOVE walks, and they should love their leash. Play in the backyard with her, run around, give her treats. You will have to keep doing this every day, until that feels safe. I suggest you hire a dog trainer, or consult with ones. Insecure digs live their whole lives in fear and that can be dangerous for their health. She is young, so can be rehabilitated quickly.
Watch The Dog Whisperer. There are episodes both about insecure on walks, in general, and pooping in the yard.