Following directory setting works perfectly for me.
I had this problem recently. I wanted to convert my installer from per-machine to a per-user but was getting ICE38. I asked on wix-users and one opinion was that you can ignore ICE38 because that was meant as a check for per-machine installs.
See the discussion at wix-users.
Since that is the case, ICE38 is (in my opinion) incorrect and you will want to ignore it. ICE38 implies you are installing per-user resources in the context of a per-machine installation but never verifies that this is so.
Actually authoring a per-user install requires that you ignore ICE38 because it won't ever be accurate for that world.
[Edit] Looks like you got help here.
From Peter Shirtcliffe:
This is my own, admittedly inexpert, understanding of per-user installations:
Installing to subdirectory of LocalAppDataFolder is perfectly OK in a per-user MSI. Because of certain scenarios relating to roaming users, you need to add components containing elements for any directories you create under LocalAppDataFolder. That's why ICE64 is appearing.
The ICE38 error is slightly misleading: since you have a per-user installation, it's safe to ignore as long as the user cannot pick an alternative installation location that is common to all users. ICE38 is checking for the situation where multiple users all install the same component to the same path.
Just posting to help other people (like me).