This seems like a weakness with the body parser. If you send a POST request with a number of type String and attempt to map it to an Enum of type Int, the body parser will do so. But the type of the enum-value will still be String, which is not intended. This seems to break if-statements and filters that are dependent on the enum-value.
I have registered a challenge on this, but in the meantime, Sondre found out that you can set up a runtime function property of type int that returns the enum-value. This will ensure that the enum-value is always of type Int.
It is also worth noting that this works fine after the it from the service and throughout the rest of the solution. And the select works fine using the same data in app later, so it seams to be isolated to runtime in a service.