I don't see anything obviously wrong with your report that can cause that error to be generated - unless you are using a custom assembly and not referencing the custom assembly. Compare what is described on this MSDN page to see which of the two approaches you are using --> http://msdn.microsoft.com/en-us/library/ms156028.aspx
Another problem - although you have not run into it yet - is that if you are using SSRS 2008 or later global variables may not behave the way you expect them to. In 2008 and later, the order in which expressions are evaluated is not guaranteed. So the results you get may not be what you expect. A better option would be to use report variables or group variables if at all possible.