I opened up my project and everything was fine. But when I selected the keyframes, the yellow timeline thing would go over my keyframes?
How does this even work!?
A keyframe does not have to be aligned to a rendered frame. While that may sound a bit un-intuitive, a frame is a point in time, for example 24 frames in a second. A keyframe can define a value at any point in time not just on a specific frame.
It is normally considered better to have keyframes aligned to frames to get cleaner animation results. To help with this the Dopesheet and Graph Editors can auto-snap when editing keyframes.
Having keyframes that aren't aligned to a frame means you moved the keyframes in the Dopesheet or Graph editor with snapping turned off. You can simply enable snapping and align them, if you enable snapping to nearest frame then select all the keyframes and start moving a little bit they will all snap to the nearest frame without destroying your animation.