Custom Post Type Taxonomy Filters

I would take a look at this page on the Codex:

http://codex.wordpress.org/Class_Reference/WP_Query

I think you need to override your query_posts() for your landing page, and controlling different queries with if() statements, depending on what areas of a form (guessing you’re using a form?) has filled in. For example:

// Carry pagination through
$args = array(
  'paged' => ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1
);

// Check if 'story-type' was searched for
if ( !empty( $_POST['story_type'] ) )
  $args['story-type'] = $_POST['story_type'];

// Check if 'story-tags' was searched for
if ( !empty( $_POST['story_tags'] ) )
  $args['story-tags'] = $_POST['story_tags'];

// Check if a year was selected
if ( !empty( $_POST['date_year'] ) )
  $args['year'] = $_POST['date_year'];

// Check if a month was selected
if ( !empty( $_POST['date_month'] ) )
  $args['month'] = $_POST['date_month'];

// Override $wp_query
query_posts( $args );

The sorting is done in the same way – check out ‘order’ and ‘orderby’.