I spent quite a bit of time tonight banging my head against the wall trying to figure out why the filter value selected by the user from the options I created in IPluginFilterOptions.FilterOptions were not set in the filter object passed to IPluginFilterOptions.FilterOptionsQuery.
After a lot of trial and error I finally discovered that you HAVE to also implement the IPluginFilterCommit interface and call SetPluginField somewhere therein (usually in FilterCommitBefore) to make FB stash the value so it is available in the CFilter object provided in the other methods.
I didn't see this mentioned in the API examples or Wiki documentation. It would have saved me a ton of time if it had been. I wasn't making the connection because I assumed the IPluginFilterCommit interface was just for saving filters and not setting them interactively.
Anyway, my suggestion is to add this gotcha to the documentation in the Wiki.