You should be able to fit a "double din" in the 2004 with no issues (unless you prefer a single din for some reason), speakers should be 6x8", but you can run round speakers with an adapter plate if necessary as well. Figure out which features you need / want, example; does it need to play CD’s, DVD’s, have AUX Input, USB Input, touch screen, does the USB need to work with your Android or IOS, AM/FM tuner, etc.
Yeah Crutchfield has always been pretty easy to use, at the very least enter your truck info, and see what it says fits.
Name brands like Sony, Alpine, Pioneer, Kenwood, etc., have been pretty solid over the years.
I try to steer clear of the cheaper flea market head units like Boss, Power Acoustik, etc. My past experience with them, even the touch screens, were like MS-DOS compared to Windows 10, just not very good in comparison.
Depending on your goals, pretty much any modern 6x8 speaker would work well enough, even the budget minded speakers. I'd even say to just try the new head unit with the stock speakers first, and swap speakers if needed.