It looks like you can get the datasheet for the flash chip and thereby rig up something to read the bits. However, that may be a long way from recovering the data. Somewhere in the pile of bits is control information private to the flash drive, probably some wear levelling data, and then file system structures as seen by the operating system.
You should be able to get info on the file system (probably FAT32), but the private flash drive structures and how/where it actually stores the data is unlikely to be specified publicly. I think the best bet is to get another flash drive of the exactly the same model, replace your flash chip into that drive, and hope no additional state is stored in non-volatile memory in the controller.
Your first step is to find a USB microcontroller that has all the peripherals you need to accomplish your task.
The second step is to correctly set up your USB descriptors. The descriptors will tell the PC that your device is a composite device. I have not seen very much support for multiple configurations. So you will need one configuration descriptor.
Typically, composite devices are described by using multiple interface descriptors. So your one config descriptor will say it has 2 interface descriptors. The first interface descriptor will be for your Mass Storage Device. The second interface descriptor will be your custom interface.
EDIT: here's a couple links that might help you out with the descriptors. The USB Generic Parent Driver is what Windows uses to enumerate composite devices. Lots of good stuff here. http://msdn.microsoft.com/en-us/library/windows/hardware/ff539234%28v=vs.85%29.aspx
Here's a link to an Atmel app note which shows an example of a composite device. http://www.atmel.com/images/doc7805.pdf
Microchip has a free USB stack for their microcontrollers. It also contains examples for composite devices. Unfortunately, the link to the Microchip examples is the type that will likely change over the course of time, so your best bet is to google "Microchip Application Libraries"
With that said, you probably don't need a custom interface. If you're just passing around bytes, you can use standard HID drivers to transport your data to and from the device, no custom drivers necessary. However, host-side software will be required to use the OS-specified interface for reading/writing HID reports (in the case of Windows, this is usually ReadFile and WriteFile from the Windows API)
Best Answer
Dean Camera has written a USB stack for the AVR. It includes a mass storage driver.
http://www.fourwalledcubicle.com/LUFA.php