If at all possible I would stamp the month on every row going into the QVD, rather than doing it on the way out. The reason for this is simply that if you do any manipulation of data when reading from a QVD (except renaming or dropping fields) it will switch from doing an Optimized load to a normal load. This will make your load from QVD literally 100 times slower.
Another route is to build a calendar table using an autogenerate that has all the various ways that you can look at a date. This works fine as long as your data set is not too massive. I have uploaded a script I use to my files area. just change MyDate to DateField:
Hopefully one of those solutions will work for you.
My best guess on your original query is that it is a memory issue, based on the fact that the file is loading in non optimized load. QlikView has to load all the data uncompressed into memory before then compressing it down again. This could well cause issues. With that number of rows optimising the way data is stored is key. You could check my blog posting on performance for more information: http://bit.ly/bePwA7 .
Hope that helps,