I don't where you are getting the "Approver" from your text, so I assume you are getting the approverID from a list or somewhere to populate your "approver list."
Make sure you are comparing the username() to the approver ID and not their actual name.
One thing I do is to force all comparisons of userName() to lowercase using the code below.
Also check to see if you are using the domain name as "domainName\userID." If you are, then you may need to concat the domain name to username() before you compare.
For my example, I will use "[APPROVER_ID_FIELD]" as the pseudo fieldname where the approver ID you would get from the list is stored.
translate([APPROVER_ID_FIELD], "ABCDEFGHIJKLMNOPQRSTUVWYXZ", "abcdefghijklmnopqrstuvwyxz") = translate(userName(), "ABCDEFGHIJKLMNOPQRSTUVWYXZ", "abcdefghijklmnopqrstuvwyxz")
Hope this helps a little.
Ray
P.S.
Often I actually store the lowercase version in a "userIDlc" field at form load if I know I am going to compare the "current user" to several different scenarios such as Approver, ServiceCoordinator or Admin, where each serve different functions within the form.
Cheers.