On the original topic, sounds like you have a bad pointer you're passing in, either to the resource or the desc, or it's possible you've corrupted something by writing memory you're not supposed to. That's all I can give you without getting it under a debugger myself.
Off topic, galop1n is correct, the GetCopyableFootprints method only provides a least-common-denominator layout that the API will accept for copying between opaque driver layouts and transparent buffers. The actual memory footprint of the opaque texture will likely be less, but could even be more, we don't really expose that information, though you can see it through PIX or WPA I think.