Why won't a select by polygon work "as is"? It may not be optimal in that MapServer is doing polygon intersection computations, but at least it should work.