This is coming from a non-expert, so if anyone else would like to chime in and correct me, feel free:
The size of your sprites should work well within your game. Whether that's 300x300 or 74x74, do what's right for your game. It is best to make your game art so that you don't have to zoom in or out to get it to be the size you want it to be. So if it's supposed to be big, make it big. If it's supposed to be small, make it small. You can get away with some zooming, but it's usually bad practice because you lose information and increase the chances of blurriness if you're not using initial sizes.
The more frames you have, the smoother your animation will be. FPS does play into this, but if you have the time to make your animations have more frames, you'll have less issues of it not looking "right" at certain moments. This usually is a non-factor with pixelly/retro games, though, so don't make more work for yourself than necessary. If you're making a 2D fighter like Street Fighter 3 Third Strike, you'll want TONS of frames of animation. If you're making a retro sidescroller, you can probably get away with significantly fewer frames of animation, unless you're going for a very fluid walk motion.
The more you place on a sprite sheet, generally the better. Say you have every single sprite on one file. That means your game has only one file to load. Split each asset up into different sheets, and then you have more loading. Split it down even more to 1 "pose" per file, and it's just unruly. However, you need to make developing easy on yourself. Usually people find a happy medium and put all of the sprites for each asset in their own sprite sheet, that way you aren't loading a million files and everything stays organized. The key is to know your sprite sheets. The more you know them, the easier it will be for you to use them.
Make sure the sprites on each sheet are spaced appropriately, for just in case you use an engine that will auto-cut the sheet for you. For instance, I have an arrow that moves in one direction, and loops around itself. It has 93 frames of animation and each frame moves it one pixel. This is probably overkill, but I'm using it for reference here anyways. So there are 93 frames, I organized them on a 10x10 sprite sheet. So when I import the animated arrow into Construct 2, I can say there are 10 columns and 10 rows, and simply delete the extra, empty frames that are generated by the blank spaces at the end of the sprite sheet.
Most importantly: Make sure it makes sense for YOU. Best practices are best practices, but if they hinder your progress, take whatever shortcuts you need to take and worry about optimization when you see the shortcuts actually affecting your game's performance. However if you have the time, it never hurts to do everything right the first time (technically you save time by doing that).