You have to have your order by argument as an array:
$q = new WP_Query( array( 'orderby' => array( 'sticky' => 'DESC', 'published' => 'ASC' , 'hidden' => 'ASC' ) ) );
Need to be careful how you are calling these keys in though. Remember you need
'meta_key' => 'start_date',
argument in there too.
I’ve never tried it will muliple custom fields but i’m guessing you will have to have the matching keys as an array also.