In your Function.Call, you are not calling the ped properly. You need to do Character.Handle, which gets the actual ped ID.

I tested the following code, and as you can see from the screenshot, everything is exactly the same. (Didn’t realize it was the .Handle until after)

Vector3 A = Game.PlayerPed.GetOffsetPosition(new Vector3(0f, 1.5f, 0f));
Vector3 B = API.GetOffsetFromEntityInWorldCoords(Game.PlayerPed.Handle, 0f, 1.5f, 0f);
Vector3 C = Function.Call<Vector3>(Hash.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS, Game.PlayerPed.Handle, 0.0f, 1.5f, 0.0f);

Vector3 A2 = Game.Player.Character.GetOffsetPosition(new Vector3(0f, 1.5f, 0f));
Vector3 B2 = API.GetOffsetFromEntityInWorldCoords(Game.Player.Character.Handle, 0f, 1.5f, 0f);
Vector3 C2 = Function.Call<Vector3>(Hash.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS, Game.Player.Character.Handle, 0.0f, 1.5f, 0.0f);

(#: is current position)

PS. Why not just use the API.?