SL (and/or TP) is sent to the server as a price value, absolute value. The Open Price (let's call it OP) is also sent, which is Ask for Buys and Bid for Sells, but it doesn't matter, because the broker may decide to open the position at a different price => this is slippage, deviation, or call it how you want. As a result OP can be different than the requested one, but SL and TP are gonna be the same as the requested, or there will not be position at all.
So I think that this happens. SL is calculated correctly with the current Ask/Bid price that is available at the moment. But while you send that position the price is moving.... and then on the server the trade is opened at a different price. SL/TP is again, the same as requested. As a result you have shorter SL and longer TP or longer SL and shorter TP.
I can't help for these slippages. This is what it is - you are telling the server to open the position at X price, but then it decides to open it in some other price. Even if in fxDreema SL/TP are defined as "Fixed pips", they are still sent as absolute values, they are not relative to OP.
Here is something I found:
https://forum.mql4.com/62441#946057
so, for Market execution (ECN) the rule is that the position is opened at the first market price available. For Instant execution you can specify maximum slippage, but I'm not sure that such brokers exists anymore 