When I run the script above manually from ISE, it work fine. But when I call the dialog box and pressing the button to fire the event, the script doesn't import the csv file. All other command within this script work fine (e.g. $param1 = ....)
So, I'll assume you're already aware of the serious negative security implications of Invoke-Expression, and no go into that ;).
Have you tried using a fully-qualified file path for the CSV? As-is, you're loading it from "the current directory," which may not be what you think it is, when this runs as a WPF. Obviously, since the ISE sets the current directory, it's working there.