ideally this is kind of cascading dropdowns, you can use lookup column, though it will not come as people picker field, it will be drop down.
If you are still looking for custom people picker, thinking out loud you can get started with below...please note it is just to give you an idea, you might have to think this in details like in which way use will search putting name, account name, domain\username, and other combinations...
Create a input text control using html, add a img button next to input control.
<input type="text" name="person" id="custompeoplepicker">
<img src="1231232.jgp" id="imgbutton"> </img>
bind a event on click of img button,
$( "#imgbutton" ).click(function() {
var inputPeople= $( "#custompeoplepicker" ).val();
// write custom code to retrive items form that list
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Employees",
CAMLQuery: "<Query><Where><Eq><FieldRef Name='Employee' /><Value Type='Choice'>" + deparmentid + "</Value></Eq></Where></Query>", //
CAMLViewFields: "<ViewFields> <FieldRef Name='Employee' /> </ViewFields>", //Fetch other fields which you want.
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
$( "#custompeoplepicker" ).val( $(this).attr("ows_Employee"))
found = true;
});
if(!found) {//show error message...not found}
}
});
});