Neural Networks: How to prepare real world data to detect low probability events?
You bring up a number of good questions here Ans. I will do my best to cover each of them in turn.  It isn't an exhaustive treatment but hopefully it helps...

1. How to normalize the categories.

First, assess whether your categorical variables can be considered zero variance (e.g. all records possessing one category only) or near zero variance (vast majority of records belonging to very few categories). Create a basic frequency distribution to identify this.

While it doesn't matter as much in Neural contexts per se, it is a good idea to consider filtering low variance variables from your model. Just be careful as eliminating near zero variance variables may have you throwing out the baby with the bath water.

You've worked with Neural Nets before so you know that you need to convert categories to numeric values.  A good question to ask is whether a given categorical value is ordinal in nature (e.g. on a Likert scale of 1 to 5) and whether you want to preserve ordinality. This pushes you into an area such as that described by Pinto da Costa and Cardoso (https://www.researchgate.net/publication/221112186_Classification_of_Ordinal_Data_Using_Neural_Networks). 

2. How to deal with missing data.

Assuming that you are talking about missing continuous values, you will want to impute these numeric values based collectively on the values that are present across the entire attribute.  There are a number of approaches to use here but something important to keep in mind is dispersion.  In a basic sense, if your attribute is skewed by outliers, you will want to steer clear of a mean-based calculation and go with a median-based approach. 

3. How to deal with the fact that 'Defaults' are ~5% of the data.

This isn't an immediate concern given that you have 2500 examples of what denotes a 'Default' (in a 50,000 dataset). A sane approach here would be to ensure that you are using a K-fold cross validation scheme (say with 10 folds) to ensure that you are truly randomizing training vs test.  This will help protect you against overfitting.  Again, this is pretty high level guidance, but it is prudent.

Extra Credit:
I haven't gotten into other standard tactics such as normalization of your continuous attributes, but you may want to get up to speed there to better generalize your model (while also developing a deeper understanding of the dynamics at play in the data). This could point you to trying out other algos, etc.