Should I alter my resume to downplay my level of experience in languages I am not interested in working with as much (PHP)?
There are pro's and cons to doing this - you'll have to decide for yourself based on how much experience you have in all applicable languages and how you wish to come across.
If one sees:
Extensive experience: Java, C, C#, C++, Prolog, Octave, Matlab, ...
That's probably not going to look like you're very interested in working in PHP, even if applying for a PHP job. You could consider putting them all on the same level as PHP, or even below.
However, if "Working knowledge" (or similar - i.e. "not a lot") is how experienced you are in PHP, it's probably not going to look like you have a lot of experience as a programmer in general, but perhaps this is what you want.
Keep in mind that (for many people) programming experience is programming experience - even if the language is greatly different from the one required in the position you're applying for, just having experience in it is worth noting.
With regard to listing work experience + accomplishments, I don't think it will make a big difference. If a change you made saved the company X dollars, or made the program X% faster, I doubt many people will care that you did it in C rather than PHP. You should obviously consider giving the non-programming-related achievements and work history less priority, but don't necessarily discard all of them - doing amazing things are worth noting, even if it isn't in the applicable field.
I wouldn't recommend altogether omitting any work experience from your resume though (at least not recent experience - not sure about non-recent experience) - gaps are mostly seen as a bad sign - you could even just have a single line for a job if you don't deem it that important.
Should I spend a year or two boosting my MEAN stack or ROR skills before seeking a junior position with either of these?
You could certainly get a junior position without much / any experience in some given language or framework, although many positions may expect some experience. Whether or not you want to wait until you have a bit more experience to increase the odds of getting a role is completely up to you.
You could always keep applying while you boost your skills - while some conditions may hinder your chances at success if reapplying for a position you already applied for a year or more down the line, lack of experience doesn't tend to be one of them - a visible attempt at gaining the required experience between applications could even be seen as a very good sign.
How can I find a mentor who is willing to give me advice (on rare occasions) about the direction of my career/or advice to improve my code?
If you're willing to pay, I'm sure you can find a career advisor. Any programmer friends or recruiters you get into contact with may also be able to offer some advice here and there.
Where appropriate, you can ask on this site (the Workplace).
With relation to improving code, you could ask on Code Review.
How can I get experience with agile when I work in an organization that doesn't encourage it/know it exists?
You could get knowledge of Agile through books and such.
You could perhaps get experience in Agile through an Open Source project.
If the company doesn't know it exists, you could always introduce it (by making a case for it with your manager, for example).
But, as a developer, I personally don't attribute too much value to knowing much more than the basics about methodologies. Most methodologies are easy enough to pick up if you were to start at a company using one you haven't used before. And even without any knowledge of methodologies, one should fairly easily be able to identify weaknesses with the current development approach (and either fix it, or know where to go looking for the knowledge to be able to do so). If you were to even find yourself in a position needing to implement one yourself, you could always learn. But then again, I don't like calling myself a "Software Engineer" for the association with formal processes and the like, as these often distract from getting the job done (but I do appreciate the need for them).
Should I boost my understanding of languages like C#/Java if don't wish to be a C#/Java developer in the short term?
If you see C#/Java as popular, so you're wondering whether you should learn about and consider going into that temporarily if the opportunity were to present itself - web languages (which is what you seem to be interested in) are popular enough that you probably don't need to do this, however, it can certainly be one way to get into the programming industry.
If you think you'll need C#/Java in addition to the languages you prefer in some roles, yes, there are roles that require this, but there are also many others that don't, and I wouldn't suggest that you go for one of the roles that don't if you're not really interested in C#/Java development, as you could spend a lot of time doing that.
Should I focus exclusively on front-end design/UX vs back-end/database or the entire stack? I see so many jobs focused on either the front-end or back-end only, but I am used to doing everything myself.
It's completely up to you. Focussing on one should give you greater in-depth knowledge than focussing on the entire stack, but some positions are full-stack, so it really depends on what you want to do in the long term.
How can I determine my level of expertise versus peers? I know professional developers and they are unfamiliar with much of what I know, but I am sure there are many developers that would laugh at my level of expertise.
I'm not aware of an easy way to measure this. I think whether you can get a job and your success doing it are mainly determined by knowing enough to do that job (non-technical skill not withstanding), which would vary greatly from job to job.
But I do spend some time on Stack Overflow, where you'll likely be humbled by seeing those that know so much more than you, and where you'll also see those that know so much less.
Recruiters keep trying to slot me for 'Senior Level' positions because of the years of experience I have.
You could specifically apply for junior roles, or explicitly tell recruiters that you don't have a lot of programming experience and wish to be considered for a more junior role instead (or discuss this with them).