This is really unfortunate. You'll notice there are some significant differences between the 2.3 SearchForm class and its 2.4 counterpart. The most obvious difference being that 2.4 SearchForm doesn't have a searchEngine() function, which means the key function we're overloading in CustomSearchForm is never called. That explains the lack of results.
Instead of using its own native searchEngine() function, SearchForm now hands the task off to MySQLDatabase (or whichever database you're using). Very smart... search is a function of a database, not a search form.
But here's where I get lost. There's all kinds of business logic placed in the MySQLDatabase::searchEngine() function, including many, many references to SiteTree and File (the two searchable classes that Sapphire rams down our throats). So, why, I'm wondering, would Silverstripe write a database class that is so tightly coupled with the SiteTree paradigm? It seems very half baked to me. They recognized that a database class should be responsible for searching, but they didn't take it all the way to the hoop and make it CMS agnostic.
This really pins us in a corner, I'm afraid. The MySQLDatabase class is not only not subclassable, but it's not really decoratable, either. They don't really give us any extend() methods to work our way in. And lastly, the icing on the cake is that searchEngine() doesn't return a MySQLQuery object. Rather, it returns a complete DOSet, so even if we wanted to customise the query, we don't have that opportunity. Another really surprising decision there, to make the a database class so aware of other, somewhat disparate, elements of the framework. IMO, a database class should not know what a DataObjectSet is. Further downstream in the ORM, of course, but not in something as fundamental as MySQLDatabase.
So, some strange code organization, there... bottom line is, we're SOL unless you want to create your own search form, which, really isn't too huge a task. I've been enamoured with the SearchContext object lately. Very useful.
Sorry, mate. Good luck, and let me know if you need any help building an alternative solution. I might be able to guide you in the right direction.