I was going to point you at this answer, but you say you've already done the things they suggest. However, this code based on that answer works.
extends Node2D
var guy
var tm
func _ready() -> void:
var ys = YSort.new()
add_child(ys)
guy = KinematicBody2D.new()
var cs = CollisionShape2D.new()
var sh = RectangleShape2D.new()
var sp = Sprite.new()
sh.extents = Vector2.ONE * 32
sp.texture = preload('res://icon.png')
sp.offset = Vector2(0, 30)
cs.shape = sh
guy.position = Vector2(680, 350)
guy.modulate = Color(0.5, 0.5, 0)
ys.add_child(guy)
guy.add_child(cs)
guy.add_child(sp)
tm = TileMap.new()
var ts = TileSet.new()
var tx = ImageTexture.new()
var im = Image.new()
tm.cell_size = Vector2.ONE * 64
tm.cell_y_sort = true
ts.create_tile(0)
im.load("res://icon.png")
tx.create_from_image(im)
ts.tile_set_texture(0, tx)
tm.tile_set = ts
ys.add_child(tm)
for y in 10:
for x in 10:
if y % 2 == x % 2:
tm.set_cell(x, y, 0)
func _input(event: InputEvent) -> void:
if event.is_pressed():
var v = Input.get_vector('ui_left', 'ui_right', 'ui_up', 'ui_down')
guy.position += v * 10
