Continuity mistake: When the robot catcher nets in the stray robots including David they go in the cage of the moon balloon, where David is struggling to hold on to Teddy as the balloon rises into the air. Teddy says "l'll break David" and at that point Teddy slips through Davids fingers and falls to the forest floor. Teddy then immediately runs to the top of the hill where the balloon he just fell from has already sunk well behind that hill only just seconds after falling from it. The balloon has moved far too quickly.
Continuity mistake: When Monica first meets David, David walks out onto the carpeted floor and takes a step down to the wood tiled floor. He taps his feet on the wood tiled floor and then steps back up to the carpeted floor. He taps his feet again and turns around to face Monica. This is just before he tells her, "I like your floor." The mistake here is that Monica was pulled from the carpeted floor to the wood tiled floor before David walked in. So, David should not have had to turn around to face her because she would have been in front of him ... not behind him.
Plot hole: When Martin decides to antagonize David by eating spinach, he eats it from his plate. When they both eat the spinach frantically, they each eat out of a large bowl. Where did the second large bowl come from, and why would there even be a second one if they only need enough for three people?
Plot hole: Hair does not contain DNA so the boy's mother could not be recreated from just a snipping of hair. The hair follicle contains DNA but that would only be present if the hair had been ripped out. The robot bear that gives David the hair didn't really have a chance to get any hair as he left with David early on in the film and they never returned. Added to that even if he did have the opportunity, he wouldn't have thought about getting extra hair. They only find out about the DNA cloning at the very end of the film when the mother had passed away a long time ago.