I think you just need to change input_dim and active_dims. Since it’s separable, each cov_func is just acting over each part of Xs.
Can you try it with this?
spatial_cov = pm.gp.cov.Matern52(input_dim=2, ls=[length_S, length_S])
temporal_cov = var*pm.gp.cov.ExpQuad(input_dim=1, ls=length_T)
EDIT: changed input_dim on temporal_cov from 2 to 1.