I know this is a really old issue, but I was just seeing this happen with a .dll. I was using a newer .dll by accident, and I needed to reference and older one because I wanted to hit production environment without dev code. When I tried to do that, it kept using the new dll, even if I completely closed and re-opened LINQPad. The only way I could fix was to dump out the CodeBase path (Local\Temp\LINQPad5\blah\shadow_blah), open the folder manually, and delete the entire folder so it would reload the .dll's fresh. Is that expected behavior?
The shadow folders are deleted and recreated when you restart LINQPad, so it sounds like something else is going on. Let me know if you can provide steps to reproduce.