As you've observed, the intonation of a recorder is highly sensitive to the pressure it's played at, i.e. to the dynamics. It should not be understood as a “keyed” instrument where the fingers just select from a discrete number of pitches and the mouth is only responsible for dynamics and phrasing, but rather as a “fretless” instrument where the fingers select from a continuum of pitches.
Concretely: normally when playing p, the pitches are a bit too flat; this can easily be compensated by “leaking a bit air” from the lowest finger, e.g. when playing a d note (on soprano; it would be g on alto) you'd put the ring finger a bit off-center of the hole, not closing it perfectly, so the pitch goes up as desired. With enough practise, this kind of adjustment should eventually become second-nature and you don't need to think about it anymore. It actually feels kind of natural: when you reduce the breath pressure, you also reduce the finger pressure.
Now, in your situation the problem appears to be in the other direction: it's only in tune when playing quiet, and goes sharp at high pressure. This could in principle also be compensated with the fingers (basically you always finger one note lower, but make the last finger cover only small part of the hole), but it's not very practical; especially for a beginner way too confusing. So what you should do instead is bias all pitches lower. This can be done by pulling out the mouthpiece join a little (thus making the instrument longer). Alternatively, you can just shift your reference: when playing alone it doesn't really matter what the absolute pitch is, only that the notes a relative in tune. When playing with a guitar or electronic keyboard as accompaniment, this could easily tune up a quarter-step.
Both of that isn't ideal. Probably, at some point it would make sense to get a better instrument. But don't take that as an excuse not to practise until you have a better recorder!