We examine the performance of the single-mode Gottesman-Kitaev-Preskill (GKP) code and its concatenation with the toric code for a noise model of Gaussian shifts, or displacement errors. We show how one can optimize the tracking of errors in repeated noisy error correction for the GKP code. We do this by examining the maximum-likelihood problem for this setting and its mapping onto a 1D Euclidean path-integral modeling a particle in a random cosine potential. We demonstrate the efficiency of a minimum-energy decoding strategy as a proxy for the path integral evaluation. In the second part of this paper, we analyze and numerically assess the concatenation of the GKP code with the toric code. When toric code measurements and GKP error correction measurements are perfect, we find that by using GKP error information the toric code threshold improves from 10% to 14%. When only the GKP error correction measurements are perfect we observe a threshold at 6%. In the more realistic setting when all error information is noisy, we show how to represent the maximum likelihood decoding problem for the toric-GKP code as a 3D compact QED model in the presence of a quenched random gauge field, an extension of the random-plaquette gauge model for the toric code. We present a decoder for this problem which shows the existence of a noise threshold at shift-error standard deviation σ0 ≈ 0.243 for toric code measurements, data errors and GKP ancilla errors. If the errors only come from having imperfect GKP states, then this corresponds to states with just four photons or more. Our last result is a no-go result for linear oscillator codes, encoding oscillators into oscillators. For the Gaussian displacement error model, we prove that encoding corresponds to squeezing the shift errors. This shows that linear oscillator codes are useless for quantum information protection against Gaussian shift errors.