اشتباه من در این بود که مقداردهی اولیه BackgColor رو توی فرم لود انجام می دادم ، موقعی که یوزرکنترل رو توی یک پروژه اد می کردم و اونو روی فرم می ذاشتم می رفتم از قسمت پراپرتی رنگ BackgColor رو عوض می کردم روی فرم رنگش عوض می شد ولی به محض اینکه پروژه رو ران می کردم تابع form_Load اجرا می شد و رنگ به حالت اول بر می گشت
حالا این طوری کدمو عوض کردم
private Color _BackgColor =Color.Cyan;
public Color BackgColor {
set{ _BackgColor = value;this.PBox.invalidate();}
get {return _BackgColor;}
}