Presence Dataengine does the wrong thing when setting the presence - it looks only at the integer value set but actually it should look at the string value in preference to determine the presence (how Telepathy spec says Tp::SimplePresence should be interpreted).
The presence dataengine was left behind and is not used anymore. Although this was fixed before we dropped it.