First, 3 hour flight time for a quadcopter is probably not realistic. The weight of the battery drives up the need for power for motors which drives up the weight of the battery more, ...
Second, A 3D printed body may delaminate under force. For things like brackets, 3D printing can work fine, but for things like the main struts/arms, I wouldn't rely on that.
Third, why a GPS shield? A USB GPS stick or puck can be had for half of that price, as can a TTL-UART GPS. The shield may be slightly more plug-and-play, though.
Fourth, I'd suggest going to a quad copter forum to get a wider range of advice.