When its displayed on the watch face it is ALWAYS in 24hr format even if i change between 12 and 24 hours. I don’t know of ANY way to manipulate a field that is provided by a built in compliction.
This is a bug in the complication. It should check the user’s preference and adapt the text before passing it to your watchface.
WFS doesn’t provide the ability to manipulate values returned by complications. WFF does make this possible: the value would be returned as a string which you could access using the equivalent of a WFS tag value. You can then mess with the value as you see fit (within the limits of the WFF functions, which are less limited than those of WFS). But all of that is only possible if you’re willing to mess with XML, gradle, etc.