Can GAN's be used to fill in gaps? Is it possible to make a Generative Adversarial Network that, given a fragment of a valid piece of data, can identify the patterns involved and generate something close to the original piece of data? From what I understand, typical GANs' generators take in a noise vector and output the generated data, but would training a GAN generator with fragmented data as input and complete data as the label? And would there be problems with training the discriminator using the same dataset?

This task (filling in the rest of some data / image, given only part of it), is called inpainting. This can be done with conditional GANs.
In a conditional GAN, the generator is given both the noise vector $z$ and also the conditional input $x$ (the fragment of valid data), and is supposed to output a plausible reconstruction of the whole data. The discriminator GAN can also be conditioned on the available data $x$, and tries to judge if the reconstruction is real or fake.
Free-Form Image Inpainting with Gated Convolution is one example of using GANs for inpainting tasks. Note that in the case of inpainting tasks, it's typical not to train as a pure generator/discriminator, but also to provide additional supervision in the form of L2 loss or style loss, using the complete image/data as supervision.
