Conversion between Astronomical Frames, ex. IRCF, FK5, FK4, etc… I'm a little bit confused about reference frames, and I was wondering if someone could help clarify a few things?

So let's say I have equatorial coordinates that refer to the mean equator and equinox of an non standard arbitrary epoch. Now, if those coordinates are referred to the mean equator and equinox that epoch, then is the mean equator/equinox of the specific epoch considered the reference frame for those coordinates? 

…and then how would you go about converting those coordinates to another reference frame like say the IRCF or FK5? I assume that I would need to precess them to J2000 accounting for any applicable proper motion (and if they referred to the true equator nutation). What else do you need to put them in either the ICRF or FK5 frames?

Also, something else I'm confused about is the epoch of a reference frame. So, let's say I have the IRCF astrometric coordinates of a planet at JD 2456963.5 TDB (or any other arbitrary date). Since they're IRCF coordinates, then the epoch of the reference frame is still J2000, but the coordinates refer to the instant of 2456963.5 TDB correct? 

Any clarification would be greatly appreciated, and thanks in advance!
I'm not sure this answers your question, but ICRF is a non-precessing 
reference frame. 

On J2000 (2000-01-01 12:00:00 UTC), the z axis of the ICRF frame was 
exactly parallel to a line connecting the Earth's center to the 
Earth's north pole. 

Since then, the Earth's north pole has precessed, so the ICRF z axis 
and the geocenter-north pole line are no longer parallel. 

To see this, you can visit http://ssd.jpl.nasa.gov/horizons.cgi and 
use these settings: 



(this is actually looking from the north pole "down" to the Earth's 
center, so we would expect a negative z value). 

The interesting part of the results: 

$$SOE
2445701.000000000, A.D. 1984-Jan-01 12:00:00.0000,  1.007696415090285E+01, -3.712508526111991E-02, -6.356744326939433E+03, -2.994380889331686E-07, -2.570088696418019E-07, -4.731801778858530E-10,  2.120384334099952E-02,  6.356752314245179E+03,  5.329972950848752E-25,
2451545.000000000, A.D. 2000-Jan-01 12:00:00.0000,  1.601081935638483E-01,  1.746805655485580E-01, -6.356752309828780E+03,  2.230286001476848E-07, -8.078442785945724E-07, -1.658173608778433E-11,  2.120384334099953E-02,  6.356752314245181E+03, -5.549834335071262E-23,
2457389.000000000, A.D. 2016-Jan-01 12:00:00.0000, -9.877267476902714E+00,  3.153970319756332E-01, -6.356744632653835E+03,  1.794887917287106E-07, -5.409368308792473E-07, -3.057333255094828E-10,  2.120384334099952E-02,  6.356752314245179E+03, -5.736383388350969E-23,
$$EOE


It's a little hard to notice because of the scientific notation (and 
the embarrassing fact that x and y aren't exactly zero at J2000), but 
the x and y values at J2000 (the middle entry) are nearly zero. 

The y value is nearly zero for all three entries, but the x value 
changes. In 1984, the x value is about +10m, and, in 2016, the x value 
is almost -10m, showing the effects of precession. 

One benefit of a non-precessing frame like ICRF is that star positions 
are relatively constant (excluding proper motion and the solar system's own 
motion). For example, the z axis will always point (very roughly) to 
Polaris, even after precession has changed the north star to, for 
example, Deneb. 

By default, NASA now uses ICRF coordinates to indicate where planets 
are, so, if you're looking to map planets on a J2000 starchart, you 
should use the ICRF coordinates. 

The only problem you'll have using ICRF/J2000 coordinates (instead of 
J2016 coordinates) is that any calculations you make for 
stellar/planetary azimuth and altitude will be off slightly, not 
enough to really notice unless you are doing precision work.