I just tried with the latest bleeding code and gamerules seemed to work as expected:
@Listener
public void onWorldLoad(LoadWorldEvent e) {
World world = e.getTargetWorld();
System.out.println(world.getProperties().getGameRule("keepInventory"));
world.getProperties().setGameRule("keepInventory", "true");
System.out.println(world.getProperties().getGameRule("keepInventory"));
}