If you are asking two different things, you should expect two different answers.
First answer was related to the custom filters, where you don't need to recompile the source, the second answer was to this question: "Also how do I disable so that the user CAN'T select the options for Age, Gender etc?"

This is not possible at the moment since the filter has the same array for the user and partner.
You can still achieve the above by using the second custom filter as cities too (use different value and same name) and by hiding the Looking for part of the first and I am part of the second filter using the visible="false" attribute. Example: