The other thing you could try...... Query 1 & 2 are very similar (only a minor diff) as are Query 3 & 4.....so while other have been suggesting using 4 temps and doing the union, to me, you would really only need 2:
select (query 1)
into #temp1
union
query 2
select (query 3)
into #temp2
union
query 4
...then union the two temps.....but if doing that, the next logical step might be to do dynamic tables ala:
select * from (query1 union query2)
union
select * from (query3 union query4)
...depends on how smart ASE is at flattening the virtual tables out whether this would work or not....not even sure if unions are allowed in dynamic tables, so it might not work at all.....
However, like others, I suspect there are some stats missing that is driving ASE 15 to think there are a lot of rows coming back - hence the store index....and setting store index off doesn't change that estimate - it only changes what ASE is going to do - which may not be good.