Looking at the data sheet for the MAX31855, Figure 12 shows that the device uses the common bit ordering of MSB first. It also says that the top 12 bits of the 32-bit value contain the temperature and the bottom 16 bits contain the reference junction temperature as shows in Table 2.
Therefore, when you read the 4 8-bit values, you should be using 'temp1' and 'temp2' for the temperature rather than 'temp3' and 'temp4' as you ha vein the above code.
You also need to swap the two tempx variables around to be something like '((temp1*256l + temp2) >> 2) & 0x3fff'.
Also you need to be sure that the compiler is correctly promotes the values as part of the calculation. Not sure about the MikroC compiler but if 'temp1' is declared as a byte (you don't tell us what is really is) and you simply multiply by "256" then it could perform byte-level multiplication to give you a byte level value. That is why I specify '256l' to force that value to be 'long' which makes sure that all other parts of the calculation will be 'long' as well, no matter what the declared size of the result.
Susan