You shouldn't use GetValueAt / GetKeyAt anymore. Especially not by stepping backwards. It will be very inefficient.
Correct solution that will work on all platforms:
B4X:
Dim m As Map = CreateMap("a": 1, "b": 2, "c": 1)
Dim keysToRemove As List
keysToRemove.Initialize
For Each k As String In m.Keys
If m.Get(k) = 1 Then keysToRemove.Add(k) 'remove all items with value = 1.
Next
For Each k As String In keysToRemove
m.Remove(k)
Next