Stop trying to read at 10:30pm lying down. You are not failing at reading, you are succeeding at falling asleep, which is what your body has been trained to do in that position at that hour.
Things that worked for me, roughly in order of how much they helped:
- move fifteen minutes of reading to somewhere else in the day. Lunch, the commute, the twenty minutes before anyone else in the house wakes up. Fifteen minutes of awake reading beats an hour of drifting.
- sit up in a chair, not in bed. Sounds trivial and it is not.
- keep the bedtime reading, but treat it as a bonus rather than as your reading time. Then it stops feeling like failure.
The train and holiday detail in your post is the answer hiding in plain sight. You read fine when you are upright and not tired. The problem is scheduling, not attention.